Android: передача значения из базы данных в константу / переменную - PullRequest
0 голосов
/ 11 октября 2011

Кажется, я возвращаю значение из базы данных для идентификатора столбца, но я хочу фактическое текстовое значение столбца, который я уже определил.

У меня есть строка, определенная как ID_COLUMN_TITLE,где я пытаюсь передать значение столбца в строку .:

public final static String ID_COLUMN_TITLE = "com.pocketbeta.COLUMN_TITLE";

Значение COLUMN_TITLE заполняется базой данных в другом фрагменте кода:

public static final String COLUMN_TITLE = "route_name";

ДалееЯ настроил адаптер и прослушиватель и передал его действию:

    private AdapterView.OnItemClickListener onListClick = new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent i=new Intent(SmithRockNameDatabase.this, DatabaseChoice.class);
        i.putExtra(ID_COLUMN_TITLE, String.valueOf(id));
        startActivity(i);
    }
};

Затем новое действие отобразит результат:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.databasechoice);
passedVar=getIntent().getStringExtra(SmithRockNameDatabase.ID_COLUMN_TITLE);
    passedView=(TextView)findViewById(R.id.passed);
    passedView.setText(passedVar);
}

Все работает, только отображается столбецID, а не фактическое значение заголовка столбца, как я хочу.Может кто-нибудь сказать мне, что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Все, что вы делаете, работает так, как должно.

Вы делаете эту строку:

i.putExtra(ID_COLUMN_TITLE, String.valueOf(id));

, которая преобразует int в строку, так что при вашем следующем действии текст будет установлен наint.

Я думаю, что вы хотите сделать что-то вроде:

  String value = (view.findViewById(R.id.text1)).getText();
  i.putExtra(ID_COLUMN_TITLE, String.valueOf(id));

Я не слишком уверен, какой текст вы хотите получить, но основной ответ - это преобразование int встрока.Таким образом, 4 = "4", то вы показываете это.Вы пропустили шаг, чтобы получить нужный текст.

0 голосов
/ 12 октября 2011

Быстрое и грязное решение этой проблемы - получить текст из представления:

public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
    Intent i=new Intent(SmithRockNameDatabase.this, DatabaseChoice.class);

    // I use R.id.txtTitle here but you probably have something similar
    TextView txtTitle = (TextView)view.findViewByid(R.id.txtTitle);
    if(txtTitle!=null)i.putExtra(ID_COLUMN_TITLE, txtTitle.getText());
    startActivity(i);
}

Строго говоря, хотя вам, вероятно, следует использовать идентификатор в новом действии для запроса данных, относящихся к этому идентификатору, у вас есть доступ ко всем полям в записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...