2012-03-10 2 views
0

スピナーからユーザーの選択(文字列値)を取得する簡単な方法はありますか?私はそれにリスナーを設定し、onItemSelected()メソッドを書くことを避けようとしています。なぜなら、ユーザーが選択をしたときに何も起こる必要がないからです。むしろ、私はボタンのクリックを設定して選択をキャプチャし、それをバンドル内で別のアクティビティに送信しようとしています。私のスピナーはカーソルで満たされています。ここに私のコードがあり、それはライン上でクラッシュ:データベースに埋め込まれたスピナーからユーザーの(文字列値)選択を取得する簡単な方法は?

String choice = this.adapter.getItem(index).toString(); 

コード:

public class MainActivity extends BaseActivity 
{ 
static final String TAG = "MainActivity"; 
static final String[] FROM = {CreateDB.C_CATEGORY}; 
static final int[] TO = {android.R.id.text1}; 
CreateDB dbBuilder; 
SQLiteDatabase database; 
Cursor cursor; 
SimpleCursorAdapter adapter; 
Spinner spinnerLocal; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    dbBuilder = new CreateDB(this); 
    database = dbBuilder.getReadableDatabase();   
    cursor = database.query(CreateDB.TABLE, null, null, null, null, null, CreateDB.C_CATEGORY + " DESC"); 
    startManagingCursor(cursor); 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor, FROM, TO); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    Spinner spinnerRemote = (Spinner) findViewById(R.id.spinner2); 

    spinnerRemote.setAdapter(adapter); 
} 

public void createReview(View view) 
{ 
      //createReview runs when a button is clicked 
    Spinner spinner = (Spinner)findViewById(R.id.spinner2); 

      int index = spinner.getSelectedItemPosition(); 

    String choice = this.adapter.getItem(index).toString(); 

    Intent postReview = new Intent(this,Post.class); 
    Bundle bundle = new Bundle(); 
    bundle.putString("CATEGORY", choice); 
    postReview.putExtras(bundle); 
    startActivity(postReview); 
} 

答えて

1

スピナーからユーザの選択(文字列値)を取得するための簡単な方法はありますか?

「文字列値」はありません。

SimpleCursorAdapterを使用しました。したがって、あなたの「価値」はCursorです。

選択した行に位置Cursorを返すべきである(用CursorAdapterSpinnerを-backed)Spinner、上getSelectedItem()を呼び出すことができます。そこから、getString()と親を介して、あなたが欲しい値を読んでください。

+0

ありがとうございます - これは非常に役に立ちます。 – cmac