Android 单击ListView的列表项';不回答

Android 单击ListView的列表项';不回答,android,listview,onclick,onclicklistener,listitem,Android,Listview,Onclick,Onclicklistener,Listitem,我正在代码中实现ListView。但当我点击这些项目时,它不会以任何方式对点击做出响应。有人能帮我吗?提前谢谢 这是代码 public class ListaActivity extends Activity { public final static String EXTRA_MESSAGE = "com.example.provacomunicazione.MESSAGE"; @Override public void onCreate(Bundle savedIn

我正在代码中实现
ListView
。但当我点击这些项目时,它不会以任何方式对点击做出响应。有人能帮我吗?提前谢谢

这是代码

public class ListaActivity extends Activity {

    public final static String EXTRA_MESSAGE = "com.example.provacomunicazione.MESSAGE";
    @Override
    public void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.lsta);
        Resources res = getResources();
        String[] Authors = res.getStringArray(R.array.Lista_Nomi_E_Cognomi_Autori);
        ArrayList<String> Autori = new ArrayList<String>();
        for (String temp:Authors) {
            Autori.add(temp);
        }
        Collections.sort(Autori);
        ArrayList<String> AutoriLetteraSelezionata = new ArrayList<String>();
        for (String temp:Autori) {
            if (temp.charAt(0)=='A') {
                AutoriLetteraSelezionata.add(temp);
            }
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.textviewitem, AutoriLetteraSelezionata);
        ListView listView = (ListView) findViewById(R.id.listView1);
        listView.setAdapter(adapter);
        listView.setClickable(true);
        listView.setOnItemClickListener(new OnItemClickListener() {

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

            CharSequence autore = "("+((TextView)view).getText()+")";

            Intent i = new Intent(ListaActivity.this, SecondaryActivity.class);
            i.putExtra(EXTRA_MESSAGE, autore);
            startActivity(i);  
        });
    }
}    
公共类列表活动扩展活动{
公共最终静态字符串EXTRA_MESSAGE=“com.example.provacomunicazione.MESSAGE”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.lsta);
Resources res=getResources();
String[]Authors=res.getStringArray(R.array.Lista_Nomi_E_Cognomi_Autori);
ArrayList Autori=新的ArrayList();
for(字符串临时值:作者){
自动添加(临时);
}
集合。排序(自动排序);
ArrayList autorileteraselezionata=新的ArrayList();
用于(字符串温度:Autori){
如果(温度字符(0)='A'){
自动回写器aselezionata.add(临时);
}
}
ArrayAdapter=新的ArrayAdapter(此,R.layout.textviewitem,AutoRileterAselezionata);
ListView ListView=(ListView)findViewById(R.id.listView1);
setAdapter(适配器);
listView.setClickable(真);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、int位置、长id){
CharSequence autore=“(”+((TextView)视图).getText()+”;
意图i=新意图(ListaActivity.this,SecondaryActivity.class);
i、 putExtra(额外信息,自动回复);
星触觉(i);
});
}
}    

您应该在项目列表视图(TextView、ImageView等)中的所有子对象上定义:

对于根项目RelativeLayout/LinearLayout等,定义:

android:clickable="false"
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:focusableInTouchMode="false"
如果不定义这些,它们将“捕获”单击事件。 如果您有自定义listView适配器,只需检查是否覆盖:

@Override
public boolean isEnabled(int position)
{
    return true;
}
在客户项目中

设置每个元素

android:clickable="true"
android:focusable="false"

对我有效

在我的例子中,一个问题是
列表视图
包含
水平滚动视图
s

HSV在项目上使用单击,不会返回到
列表视图


我在适配器中编写了一个
OnClickListener
,该适配器返回对
ListView
的回调,解决了这个问题。请参见此处:。

您应该删除这一行:ListView.setClickable(true);谢谢,但我已经尝试过了,但它无论如何都不起作用,但你是对的,它很有用哇,我有另一个自定义适配器,单击可以正常工作,但其他列表需要这样做。奇怪的是,但很高兴它起到了作用:使用自定义listview和cardview。listview单击不工作Anks为了得到答案,我刚刚在subite上删除了一个类似于true的选项ms,它成功了
android:clickable="true"
android:focusable="false"