2012-03-10 1 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.

Вы можете позвонить getSelectedItem() на Spinner, который (для CursorAdapter -backed Spinner) должен возвращать Cursor, расположенную на выбранной строке. Оттуда зачитайте все значения, которые вы хотите, через getString() и родственники.

+0

Спасибо - это очень полезно. – cmac