Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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时将listview定位到目标位置_Android - Fatal编程技术网

需要在单击android时将listview定位到目标位置

需要在单击android时将listview定位到目标位置,android,Android,我遇到了这样一种情况:我试图更改列表视图中单击的某一行的文本视图中的文本 以下代码显示了我如何尝试执行此操作: answerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

我遇到了这样一种情况:我试图更改
列表视图中单击的某一行的
文本视图中的文本

以下代码显示了我如何尝试执行此操作:

    answerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

           TextView selection = (TextView)view.findViewById(R.id.selection);
           selection.setText("Selection");

       }
   });
answerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
TextView selection=(TextView)view.findViewById(R.id.selection);
selection.setText(“selection”);
}
});
当前,从列表视图中选择任何行时,第一行将根据需要设置文本

如何将位置合并到该行中,以确保正确的行显示所需的文本

谢谢

在方法中:

公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l)


int i给出位置,您可以使用它。

在这里,您将从onItemClick方法write开关中获取整数值,参数为i

您可以使用AdapterView.onItemClick Listener执行此操作。实现onItemClick(AdapterView父对象、视图、int位置、长id)方法。在这里传递的视图是单击项目的TextView,因此它应该足以执行以下操作


(TextView)view.setText(“嘿,我刚刚被点击了!”)

如果我正确理解了您需要的内容,那么您只需遍历
onItemClick
中的对象列表,将用于将文本视图设置为除I元素之外的每个元素的空字符串的属性更改,然后调用
notifyDataSetChanged()

我不认为这是最真实的方法,但我是这样做的:

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    if (convertView == null)
    {
        convertView = inflater.inflate(R.layout.my_layout);     
        holder = new StoreHolder();         
        holder.tvData = (TextView) convertView.findViewById(R.id.my_data);
        convertView.setTag(holder);         
    }
    else
    {
        holder = (StoreHolder) convertView.getTag();
    }

    holder.tvData.setText("hello");     

    holder.tvData.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v)
        {
            //Do stuff specific to TextView of particular list row
        }
    });

    return convertView;
}

class StoreHolder
{
    TextView tvData;        
}

只需在textView的getview方法中创建一个clickListener,它就能完美地工作

谢谢,我知道我给了我这个职位,但是我如何把它合并到正确的文本视图中呢?它们在我的XML文件中都被称为相同的R.id.selection。你能举个例子吗?:)@sark9012:你的方法做得很好。TextView将具有相同的id,因为您正在反复使用相同的视图,并根据您的位置执行不同的操作。您所做的应该是有效的。我刚试过。selection是列表项布局中TextView的ID吗?我想我在更改为onclick传递的视图之前测试了它。以前,我使用的是最终视图,它的目标可能会有所不同。问题是,如果我选择其中一个,listview中的其他内容应该更改,文本应该被删除或设置为null。@sark9012请查看我的答案,也许会有帮助。我不知道您为什么会遇到这个问题,我刚刚试过你的代码,它工作得很好。我不明白的是我把I放在R.id.selection行的什么位置?你可以写switch(I)或使用这个方法((TextView)view)。setText(“嘿,我刚刚被点击了!”);