Android 如何获取用于TextView和解析的特定行/列的字符串值

Android 如何获取用于TextView和解析的特定行/列的字符串值,android,sqlite,Android,Sqlite,我有两个数据库相关的问题 背景: 我可以创建和删除记录。 我可以使用StringBuilder显示整个表和/或一行。 我可以使用SimpleCrsorAdapter在列表中显示整个表。 我可以从显示的列表中选择所需的记录,获取其记录ID。 我可以在文本视图中将记录ID显示为字符串 我似乎无法做到的是: 从列表中选择一个项目并获取其ID后,我只想显示其字符串值。我遇到了查询返回游标的问题。当我更改或解析返回时,我没有成功 显示此值只是能够解析返回字符串并将其用于某些计算的一个步骤-计算和显示都是最

我有两个数据库相关的问题

背景:

我可以创建和删除记录。 我可以使用StringBuilder显示整个表和/或一行。 我可以使用SimpleCrsorAdapter在列表中显示整个表。 我可以从显示的列表中选择所需的记录,获取其记录ID。 我可以在文本视图中将记录ID显示为字符串

我似乎无法做到的是:

从列表中选择一个项目并获取其ID后,我只想显示其字符串值。我遇到了查询返回游标的问题。当我更改或解析返回时,我没有成功

显示此值只是能够解析返回字符串并将其用于某些计算的一个步骤-计算和显示都是最终目标

问题1: 如何在特定行和列显示记录的字符串值

问题2: 对于这个数据库,我使用SimpleCursorAdapter来显示列表,但是,只有列出的字符串是可单击的,而不是显示的完整行的意思,如果内容只有两个字符,那么就必须单击

以前,我使用了一个带有ArrayAdapter的ListAdapter,并对所列行中的任意位置进行了选择。 所以,问题是:如何使整行可点击

感谢您的推荐。 代码如下-但是,请注意,此代码段只是无数次尝试中的一次,并且此代码段显示光标返回的内容-在强制转换或更改其类型以显示我想要的内容时,它不是一次尝试-它只是一次测试:

//ON CLICK
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
  super.onListItemClick(l, v, position, id);

  // test for record id#
   String penut = String.valueOf(id); // YES, it gets the record id# 
 //  Maincode.showItem.setText(penut);  // YES, it displays the record id#

   Cursor myGirl = helpDude.db.query(DbAdapter.TABLE_NAME, null,
     "_id=?", new String[]{penut}, null, null, null);

   String outy = String.valueOf(myGirl);

   Maincode.showItem.setText(outy);  

}//end on click
在onListItemClick侦听器中,您应该调用它,它将返回已定位在该id处的游标对象。您必须将其转换为光标

因此,您的处理程序将类似于以下内容:

public void onListItemClick(ListView l, View v, int position, long id) {   
  Cursor c = (Cursor)l.getItemAtPosition(position);

  //use cursor to get data 

}
有关更多详细信息,请阅读

如果要对游标中的数据执行额外的工作并在ListView中显示这些数据,则必须实现自定义游标适配器

一些链接在这方面提供了一些帮助:


尝试替换这一行代码:

String outy = String.valueOf(myGirl);
与:


1看起来,我只能按照我在总共需要11行代码之前的方式来做。但是,它是有效的

需要在表中向下移动光标,将所需列中的表项与所需id和列进行比较,然后获取它。似乎我无法简单地获取特定表的单元格,而不使用光标向下移动,如:Heydudegetthisrowid,ColId

2傻我我在这一个上睡着了,只是改变宽度来填充


谢谢您的帮助。

谢谢,但我肯定没有领会您的意思-我已经可以列出数据库的内容,并且可以从返回的id查询数据库。我只想使用从数据库问题1中找到的项目。至于问题2,我可以等一下,1对我来说更重要。你目前的方法是错误的,不管它是否有效。你的问题1目前是荒谬的,至少对我来说是这样。谢谢。至于错误的方法-有太多的资源使用此方法,并且您推荐的方法没有为选择行提供任何不同的结果-我仍然必须选择行中的文本,行本身不可单击。至于问题1,我只是希望能够显示列的内容和给定的行id,并对其进行解析以进行计算。再次感谢。我不想在ListView中显示任何额外的工作。例如,我只想让Shoes=特定行id和列名的Row/Col内容的字符串值。仅此而已,谢谢,但我不能理解你的论点。getString只接受一个参数,一个整数。当你说“the outy”时,我不知道你的意思…?哦,我明白你的意思了。但是,它只是使用1作为参数,因为我只有两个col的0和1
String outy = myGirl.getString(the outy column number);