Передача значений между действиями из списка - PullRequest
1 голос
/ 28 июня 2011

Я использую SimpleCursoradapter для заполнения списка, который у меня есть в действии.

Теперь мне нужно передать значение String из этого действия в другое, и значение должно быть получено из локальной базы данных..

Я сделал то же самое, создав новое текстовое представление в виде списка и сопоставив строковое значение с помощью SimpleCursorAdapter.

Является ли это лучшей практикой для этого ??

public class InboxAdapter extends SimpleCursorAdapter {

    public InboxAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to) {
        super(context, layout, c, from, to);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        super.bindView(view, context, cursor);

        Button msgReply = (Button) view.findViewById(R.id.msgReply);
        final TextView msgId = (TextView) view.findViewById(R.id.msgId);
        msgReply.setOnClickListener(new View.OnClickListener() {

            private Intent intent;

            @Override
            public void onClick(View v) {
                intent = new Intent(getApplicationContext(), ComposeMessage.class);
                Bundle b = new Bundle();
                b.putCharSequence("id", msgId.getText());
                intent.putExtras(b);
                startActivity(intent);
            }
        });
    }

}

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Я немного заброшен, но этот - пример того, как мне удалось сделать это с обычным SimpleCursorAdapter.

.показано в ListActivity.Это работает и для ListView с.

Когда пользователь щелкает элемент в списке, метод onClick получает идентификатор элемента из базы данных в качестве параметра.В моем примере он открывает новую активность, которая запрашивает определенную информацию из базы данных.

1 голос
/ 28 июня 2011

Я так и сделал.

Bundle bundle = new Bundle();
bundle.putString(ClientList.KEY_Client, nameText.getText().toString());//ClientList is another activity
Intent ok=new Intent();
ok.putExtras(bundle);
setResult(RESULT_OK, ok);
finish();
...