Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:将值从数据库传递到contsant/variable_Android_Database_Variables - Fatal编程技术网

Android:将值从数据库传递到contsant/variable

Android:将值从数据库传递到contsant/variable,android,database,variables,Android,Database,Variables,我似乎正在从数据库中返回列id#的值,但我想要已经定义的列的实际文本值 我有一个定义为ID\u COLUMN\u TITLE的字符串,在这里我试图将列的值传递给字符串: public final static String ID_COLUMN_TITLE = "com.pocketbeta.COLUMN_TITLE"; 列标题值由数据库以不同的代码段填充: public static final String COLUMN_TITLE = "route_name"; 接下来,我设置适配器和侦

我似乎正在从数据库中返回列id#的值,但我想要已经定义的列的实际文本值

我有一个定义为ID\u COLUMN\u TITLE的字符串,在这里我试图将列的值传递给字符串:

public final static String ID_COLUMN_TITLE = "com.pocketbeta.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);
    }
};

一切正常,只是它显示了列ID,而不是我想要的列标题的实际值。有人能告诉我我遗漏了什么吗?

一个快速而肮脏的解决方案是从视图中抓取文本:

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);
}
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id)
{
Intent i=新Intent(SmithRockNameDatabase.this、DatabaseChoice.class);
//我在这里使用R.id.txtTitle,但您可能有类似的功能
TextView txtTitle=(TextView)view.findViewByid(R.id.txtTitle);
if(txtTitle!=null)i.putExtra(ID_COLUMN_TITLE,txtTitle.getText());
星触觉(i);
}

严格地说,虽然您可能应该在新活动中使用该id来查询与该id相关的数据,但您可以访问记录中的所有字段。

您所做的一切都按其应有的方式工作

您正在做这一行:

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”然后您可以显示它。您缺少获取所需实际文本的步骤。

如果在ClickListener中记录id的值,是否会得到正确的输出?您正在将(id)的值放入key-id列标题中。您将得到的是valueOF(id)。这就是你想要的吗?或者你想要ID\u列\u标题?是的,我在发布后就从valueOf(ID)中识别出ID的传递。我正在尝试传递其中一个列条目的值。例如,我试图传递数据库中名为“route_name”的列中1个条目的值。这就是我试图得到的,我认为这是可行的。谢谢我错过了
TextView
。。。我一直这么做。但现在已修复;)
  String value = (view.findViewById(R.id.text1)).getText();
  i.putExtra(ID_COLUMN_TITLE, String.valueOf(id));