2014-02-21 84 views
4

此代碼不能從它的讀取只能永遠是第一位值的微調讀取值,如何將微調數據從一項活動傳遞給另一項?

btnResult.setOnClickListener(new View.OnClickListener() 
{ 
    final String USN = spnConversions.getSelectedItem().toString(); 
    @Override 
    public void onClick(View v) 
    { 
     Intent i = new Intent(getApplicationContext(), DatabaseResult.class); 
     i.putExtra("getData",USN.toString()); 
     startActivity(i); 
    } 
}); 
+0

你想在同一時間通過一個單一的數據或者整個微調? – Kedarnath

+0

我想一次只傳遞一個值。這就像我選擇10002它總是傳遞第一個值10001(我已經給這些數字按順序) –

回答

4

爲什麼你正在使用onClickListener的微調?您應該使用OnItemSelectedListener()用於微調看到下面的示例代碼,

public class MySpinnerSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     String selected = parent.getItemAtPosition(pos).toString(); 
    } 

    public void onNothingSelected(AdapterView parent) { 
     // Do nothing. 
    } 
} 

現在,使用下面的代碼註冊監聽器,

spinner.setOnItemSelectedListener(new MySpinnerSelectedListener()); 

您可以使用下面的代碼通過它,

//發送代碼

Intent intent = new Intent(getApplicationContext(), DatabaseResult.class); 
intent.putextra("getData",USN.toString()); 
startActivity(intent); 

//接收代碼,

String value= getIntent().getStringExtra("getData"); 
+0

我在我的另一個活動中使用相同的東西。這不是問題,但是每當我從微調器中選擇10002,它都沒有從微調器獲取位置值。我是否需要在第一個活動中添加任何代碼? –

+0

@PunithK請檢查我的更新答案。 – Kedarnath

+0

@Punith K,做了這項工作? – Kedarnath

1

試試這個

int positionitem = spinner.getSelectedItemPosition(); 
1
public class SpinnerExample extends Activity 
{ 
    Spinner sp; 
    String text =""; 
    Button btnResult; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     sp = (Spinner) findViewById(R.id.spinner1); 
     sp.setOnItemSelectedListener(new OnItemSelectedListener() { 
        public void onItemSelected(AdapterView<?> parent, View arg1, int arg2, long arg3) 
        { 
        this.text = parent.getItemAtPosition(pos).toString(); 

        } 
        public void onNothingSelected(AdapterView<?> arg0) 
        { 
          /TODO Auto-generated method stub     
        } 
      }); 
      btnResult = (Button) findViewById(R.id.buttonId); 
      btnResult.setOnClickListener(new View.OnClickListener() 
      { 

        @Override 
        public void onClick(View v) 
        { 
         Intent i = new Intent(getApplicationContext(), DatabaseResult.class); 
         i.putExtra("getData",this.text); 
         startActivity(i); 
        } 
      }); 
    } 
} 
相關問題