2016-02-28 82 views
0

所以我有一個微調,我不想從中選擇一個項目,然後在另一個活動中顯示他的選擇..但按鈕甚至不會做任何事情..我'米猜測錯誤是intent.putExtra int位置== 0 ..有人可以幫我嗎?在另一個類中顯示微調選定的項目TextView

cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj); 
      prikaziRezultat = (Button) findViewById(R.id.buttonPrehranaPrikaziRezultate); 


      ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item); 
      ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      cilj.setAdapter(ciljPrehranaSpinnerAdapter); 

      prikaziRezultat.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
         @Override 
         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

          if (position == 0){ 
           Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 
           intent.putExtra("ciljJePovecanjeTezine", cilj.getItemIdAtPosition(0)); 
           startActivity(intent); 
          } else if (position == 1){ 
           Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show(); 
          } 

         } 

         @Override 
         public void onNothingSelected(AdapterView<?> parent) { 

         } 
        }); 

       } 
      }); 

這是第二次活動

String prehrana = intent.getStringExtra("ciljJePovecanjeTezine"); 

     ciljPrehranaRezultat = (TextView) findViewById(R.id.textViewPrehranaCiljRezultat); 
     ciljPrehranaRezultat.setText(prehrana); 

謝謝!!

這裏的第一活動的修改後的代碼:

cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj); 
     prikaziRezultat = (Button) findViewById(R.id.buttonPrehranaPrikaziRezultate); 


     ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item); 
     ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     cilj.setAdapter(ciljPrehranaSpinnerAdapter); 


       cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
        @Override 
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
         if (position == 0){ 
          Toast.makeText(PrehranaInputMain.this, R.string.cilj_prehrana_nista_odabrano, Toast.LENGTH_SHORT).show(); 
         } else if (position == 1){ 
          Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 
          intent.putExtra("ciljJePovecanjeTezine", cilj.getSelectedItem().toString()); 
          startActivity(intent); 
         } else if (position == 2){ 
          Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 
          intent.putExtra("ciljJeMrsavljenje", cilj.getSelectedItem().toString()); 
          startActivity(intent); 
         } 
        } 

        @Override 
        public void onNothingSelected(AdapterView<?> parent) { 

        } 
       }); 
     prikaziRezultat.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      } 
     }); 

和第二活動

 String prehrana = intent.getStringExtra("ciljJePovecanjeTezine"); 
      String prehrana2 = intent.getStringExtra("ciljJeMrsavljenje"); 

      ciljPrehranaRezultat = (TextView) findViewById(R.id.textViewPrehranaCiljRezultat); 
      ciljPrehranaRezultat.setText(prehrana); 

// SEEMS LIKE SOME IF STATEMENT NEEDED HERE? 
      //ciljPrehranaRezultat.setText(prehrana2); 

回答

0

更改下列行:

if (position == 0){ 
     Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 
     intent.putExtra("ciljJePovecanjeTezine", (CharSequence)cilj.getItemIdAtPosition(0)); 
     startActivity(intent); 
} else if (position == 1){ 
     Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show(); 
} 

到:

Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 
intent.putExtra("ciljJePovecanjeTezine", cilj.getItemAtPosition(position)); 
startActivity(intent); 
+0

錯誤:無法解析metgod putExtra – DaxHR

+0

道歉,你應該投項目(CharSequence中) –

1

只有在用戶單擊該按鈕之前,您的聽衆才能設置下拉列表,直到您至少單擊該按鈕一次,從下拉列表中選擇一項並不會執行任何操作。

您是否嘗試在單擊按鈕後從微調器中選擇一個項目?

如果您想在用戶單擊按鈕時轉到其他活動,請僅保留onClick()方法中的startActivity(intent),並將onItemSelected()方法上移一級,然後將該intent作爲全局變量。

cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj); 
prikaziRezultat = (Button)  findViewById(R.id.buttonPrehranaPrikaziRezultate); 
Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class); 

ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item); 
ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
cilj.setAdapter(ciljPrehranaSpinnerAdapter); 

       cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
        @Override 
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

         if (position == 0){ 
          intent.putExtra("ciljJePovecanjeTezine", cilj.getItemIdAtPosition(0)); 
         } else if (position == 1){ 
          Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show(); 
         } 

        } 

        @Override 
        public void onNothingSelected(AdapterView<?> parent) { 

        } 
       }); 

     prikaziRezultat.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
          startActivity(intent); 
      } 
     }); 

此外,即使在這種情況下,在我看來,只有當用戶在位置「0」處選擇項目時才跳轉到活動狀態。我們可以假設這不是一個空白區域,你的微調只有2個條目嗎?

+0

微調只有2項是的,他們是在字符串數組所以對於第一個位置爲0 – DaxHR

+0

剛剛修改我的建議代碼的回答,是你打算啓動onClick()按鈕的其他活動? – Sean

+0

它的半工作..我做了你上面寫的,我不得不修改putExtra到intent.putExtra(「ciljJePovecanjeTeine」,cilj.getSelectedItem()。toString()); 但現在按鈕沒用,當我從Spinner中選擇項目時,它會自動將我帶到第二個活動,甚至不需要按下按鈕。奇怪的 – DaxHR