2016-02-28 80 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