代码之家  ›  专栏  ›  技术社区  ›  abc

使用自定义适配器视图时,如何使listview可单击?

  •  -3
  • abc  · 技术社区  · 7 年前

    我知道这个问题被问了好几次,我试着用另一种方法来解决,但都没有成功。我将customAdapterView与listview结合使用。我还在xml中设置了clickable。但它不起作用。

    我的问题是listview不可点击的错误是什么?

    **另一件有趣的事引起了我的注意,如果我用“list…”开始任何id名称在查找Resuruce id或case时,“l”字母自动变为大写。为什么会这样?

    以下部分位于onCreate方法内部:-

        uddin= getResources().getStringArray(R.array.uddin_name_array);
    body=getResources().getStringArray(R.array.uddin_body_array);    
        prof = getResources().getStringArray(R.array.prof_name_array);    
    
    
         ListView listView= findViewById(R.id.uddinListView);
                listView.setClickable(true);
            listView.setAdapter(new MyCustomAdapter(this,R.layout.activity_list_view,uddin,prof));
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    
    {
    
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
    Intent  intent=new Intent(MainActivity.this,ReadingUddinActivity.class);
    startActivity(intent);}
    }
            );
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   abc    7 年前

    我终于在代码中找到了罪魁祸首。它在xml代码中。我的Java代码工作正常。但由于自定义适配器视图中有分级栏,因此无法单击。

    <RatingBar
        android:id="@+id/ratingBar"
        style="@style/Widget.AppCompat.RatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"    
        android:layout_marginTop="20dp"
        android:numStars="2" />
    

    当我将样式指定为

    style="@style/Widget.AppCompat.RatingBar"
    

    列表项禁止单击。 但如果我将样式指定为

    style="@style/Widget.AppCompat.RatingBar.Small"
    

         style="@style/Widget.AppCompat.RatingBar.Indicator"
    

    它工作得很好。我不知道为什么第一个不起作用。专家可能会找到原因。