Android-如何使用对象中的字段设置ArrayList ListView,同时跟踪项目id
我声明此适配器:Android-如何使用对象中的字段设置ArrayList ListView,同时跟踪项目id,android,Android,我声明此适配器: ArrayAdapter<Problem> adapter; 阵列适配器; 我还声明此ArrayList: ArrayList<Problem> problems = new ArrayList <Problem>( ); arraylistproblems=newarraylist(); 我的问题类只有两个字段:problemId和problemName 我调用远程数据库并按如下方式填充数据:
ArrayAdapter<Problem> adapter;
阵列适配器;
我还声明此ArrayList:
ArrayList<Problem> problems = new ArrayList <Problem>( );
arraylistproblems=newarraylist();
我的问题类只有两个字段:problemId和problemName
我调用远程数据库并按如下方式填充数据:
for ( int i = 0; i < obj.length(); i++ )
{
JSONObject o = obj.getJSONObject(i);
problem_title = o.getString("problem_title");
problem_id = o.getString("problem_id");
Problem p = new Problem ( );
p.setProblemId(problem_id);
p.setProblemId(problem_title);
problems.add( p );
}
adapter.notifyDataSetChanged();
for(int i=0;i
因此,屏幕上显示的内容是对象引用,但我希望显示的是名称,当用户单击该项时,我也应该能够在我的侦听器中检索该项的id:
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), (( TextView ) view).getText(),
Toast.LENGTH_SHORT).show();
// For now just do something simple like display a responsive message
Log.d( "MyProblemsActivity" , "A choice was made from the list: " + (( TextView ) view).getText() );
Log.d( "MyProblemsActivity" , "position: " + position );
Log.d( "MyProblemsActivity" , "id: " + id );
}
});
ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener()
{
public void onItemClick(AdapterView父级、视图、,
内部位置,长id)
{
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),((TextView)视图).getText(),
吐司。长度(短)。show();
//现在只需做一些简单的事情,比如显示一条响应性消息
Log.d(“MyProblemsActivity”,从列表中选择:“+((TextView)view.getText());
Log.d(“MyProblemsActivity”,“position:+position”);
Log.d(“MyProblemsActivity”,“id:+id”);
}
});
非常感谢您的帮助
谢谢 我不确定我是否清楚这个问题,但也许这有助于 通过使用标签,您可以在Android中使用任何GUI元素(视图)存储一段数据 以下是View::setTag函数: )
“…标记也可用于在视图中存储数据,而无需求助于其他数据结构。”我不确定我是否清楚这个问题,但这可能有助于 通过使用标签,您可以在Android中使用任何GUI元素(视图)存储一段数据 以下是View::setTag函数: )
“…标记也可用于在视图中存储数据,而无需求助于其他数据结构。”我认为只需重写问题对象的th toString()方法。差不多
public String toString() {
return problemName;
}
这是用于填充文本视图的默认文本。我认为只需要覆盖问题对象的th toString()方法。差不多
public String toString() {
return problemName;
}
这是an将用于填充文本视图的默认文本。此问题中的“问题”不容易破译。你到底需要什么帮助?看起来您已经有了一些工作代码,而且您的问题的标题毫无意义。@synic现在对象引用显示在屏幕上。我只需要problemName显示在屏幕上,但需要保存一个引用id以供以后使用。这有助于把问题弄清楚吗?这个问题中的“问题”不容易理解。你到底需要什么帮助?看起来您已经有了一些工作代码,而且您的问题的标题毫无意义。@synic现在对象引用显示在屏幕上。我只需要problemName显示在屏幕上,但需要保存一个引用id以供以后使用。这有助于澄清问题吗?