Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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,在Listview的适配器类中,我为每个列表项添加了setOnClickListener事件。但每当我们点击列表项时,这些项都不会突出显示。 如果删除setOnClickListener事件,我将能够轻松查看列表项选择。。 请告诉我,如何解决这个问题 在listAdapter的getview中,如果添加此部分,listview项选择颜色将不会出现 holder.ContactNumber.setText(fitems.get(position).getContactName());

在Listview的适配器类中,我为每个列表项添加了setOnClickListener事件。但每当我们点击列表项时,这些项都不会突出显示。 如果删除setOnClickListener事件,我将能够轻松查看列表项选择。。 请告诉我,如何解决这个问题

在listAdapter的getview中,如果添加此部分,listview项选择颜色将不会出现

holder.ContactNumber.setText(fitems.get(position).getContactName());

                convertView.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {


                        // TODO Auto-generated method stub

                        setSelectedItem(i);
                         Intent intent = 
                              new Intent(context, preview_screen.class);

                        context.startActivity(intent);
                    }
                });

您必须使用xml文件为行设置背景

可绘制->bg_row.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_pressed="false" android:state_selected="false"/>
    <item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="false"/>
    <item android:drawable="@color/blue" android:state_pressed="true" android:state_selected="true"/>

</selector>

在re/drawable文件夹中为列表视图项目行\u selector.xml创建一个选择器添加此选择器作为您的listview\u item.xml背景 这是android使用的默认选择器,您可以自定义选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed_yellow"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused_orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_normal_green" />
</selector>

使用MClickListener()回调处理listview项上的单击事件

listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Toast.makeText(getApplicationContext(),
                ""+position, Toast.LENGTH_SHORT).show();
            }
        });
listView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Toast.makeText(getApplicationContext(),
“”+位置,土司。长度(短)。显示();
}
});

给convertView一个onClickListener不是ListView的工作方式。 不要设置此侦听器。相反,将onItemClickListener或onItemSelectListener(取决于您要执行的操作)设置到listview,并将代码放在其中。

//listview项目单击Listener
 // ListView Item Click Listener
            listView.setOnItemClickListener(new OnItemClickListener() {

                  @Override
                  public void onItemClick(AdapterView<?> parent, View view,
                     int position, long id) {

                   // ListView Clicked item index
                   int itemPosition     = position;

                   // ListView Clicked item value
                   String  itemValue    = (String) listView.getItemAtPosition(position);

                    // Show Alert 
                    Toast.makeText(getApplicationContext(),
                      "Position :"+itemPosition+"  ListItem : " +itemValue , Toast.LENGTH_LONG)
                      .show();

                  }

             }); 
setOnItemClickListener(新的OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父级、视图、, 内部位置,长id){ //ListView单击的项目索引 int itemPosition=位置; //ListView单击的项目值 String itemValue=(String)listView.getItemAtPosition(position); //显示警惕 Toast.makeText(getApplicationContext(), 位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH\u LONG) .show(); } });

在列表视图监听器中,您使用的

请在此处添加相关代码。@hawaii.five-0,我已经添加了代码片段谢谢您的回复。我的疑问是,如果我在adapter类中添加SetonClickListner事件,我可以选择项目,但默认的选择颜色不会出现。。为什么?谢谢你的回复。我的疑问是,如果我在adapter类中添加SetonClickListner事件,我可以选择项目,但默认的选择颜色不会出现。。为什么?@LLL如果要获得默认的选择器颜色,必须使用setOnItemClickListener!!谢谢,我没有得到你的评论。。。如果我添加setOnItemClickListener,我将无法获得默认选择器,以克服我应该做的事情?@ll您不必通过在持有者模式上注册OnClick Listener来处理项目的点击!!Android API提供了一个名为OnItemClickListener的回调来处理对listview项的单击这两个事件在Convertview obj中都不可用