0

名前を一致させてスピナービューからアイテムテキストを取得しようとしていますが、まだ実行できません。使用したコードは次のとおりです。

for(int i=0;i<calendar_spinner.getAdapter().getCount();i++) {
           String s= calendar_spinner.getAdapter().getItem(i).toString();
           System.out.println("Calendars are"+s);
           if(calendar_Name.equals(s))
         { 
          System.out.println("Calendar setted");
          calendar_spinner.setSelection(i); 
          break;
         }
}

そして、sの出力をcom.android.calendermodel.MyCalendarsModel@405872a0として取得しています正確な名前ではなく、何か違う...

4

5 に答える 5

6

これをチェックして:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> parent, View arg1,
                int pos, long arg3) {
            String Text = parent.getSelectedItem().toString();
              }
          }
于 2012-07-25T06:32:09.420 に答える
5

私はまた、非常によく似た問題の解決策を探していました:

ArrayAdapter の場合、次のことができます。

Spinner s = (Spinner) findViewById(R.id.spinner_id);
int i = adapter.getPosition("blue");
s.setSelection(i);

カスタムアダプターの場合、次のことができます。

Spinner s = (Spinner) findViewById(R.id.spinner_id);
for(i=0; i < adapter.getCount(); i++) {
  if("blue".equals(adapter.getItem(i).toString())){
    s.setSelection(i);
    break;
  }
}

この情報は、 http ://www.dcpagesapps.com/developer-resources/android/23-android-spinner-tips?start=1 から取得しました。

于 2012-11-24T17:32:47.680 に答える
2

それは適切な方法ではありません。Spinner のsetOnItemSelectedListenerを使用する必要があります。自分のやり方でやりたい場合は、オブジェクトのtoStringメソッドをオーバーライドして、必要なテキストのみを返すことができます。

于 2012-07-25T06:34:58.013 に答える
1

アダプターを宣言するときに、getItem メソッドをオーバーライドして文字列のみを返すことができます。以下のように:

ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item_1, arr)
{
     public Object getItem(int position)
     {
        return arr[position];
     }
};
于 2012-07-25T06:33:48.233 に答える
0

スピナーの選択名を取得しようとしていますか? それは簡単です。アダプターを呼び出す必要はありません。それは次のとおりです。

String itemName = mySpinner.getSelectedItem().toString()

スピナーの選択が変更されたときにのみアクションを実行する (たとえば、カレンダーをフィルター処理する) 場合は、スピナーにOnItemSelectedリスナーを実装できます。

于 2012-07-25T06:35:34.250 に答える