0

これは、AdapterView.OnItemSelectedListener を実装するネストされたクラスです。これにより、アイテムが Spinner から選択されたときにアプリケーションに通知するコールバック メソッドが提供されます。しかし、選択した文字列の値をメイン アクティビティに渡す方法がわかりません。

public class CustomOnItemSelectedListener implements OnItemSelectedListener {

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

  @Override
  public void onNothingSelected(AdapterView<?> arg0) {
        // Do nothing.
  }

}

私はそのような主な活動を呼び出します

     public void addListenerOnSpinnerItemSelection() {
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
     // I need the selected value here.........
  }
4

2 に答える 2

0

リスナーが関連するアクティビティのネストされた子クラスである場合、アクティビティからメソッドを直接呼び出すことができるはずですか?

public void doSomething(String selected) {
    // do something here...
} 

public class YourItemSelectedListener implements OnItemSelectedListener {

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

    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}
于 2012-11-28T00:05:31.580 に答える
0

カスタム SpinnerAdapter では、ビューのタグとして文字列を設定できます

 myFirstView.setTag("First");

onItemSelected コールバックでは、ビューからタグを取得できます。

 String selectedContent = (String)view.getTag();
于 2012-11-28T00:06:49.030 に答える