我正在为android开发一个小应用程序.我使用带有TextView和CheckBox的ListView.
我已经可以处理CkeckBox了.此外,我想让ListView的整行可点击,但我找不到任何方法来实现这一点.我已经尝试使用以下命令使ListView可单击:
android:clickable="true"
Run Code Online (Sandbox Code Playgroud)
我也尝试使用ListView的代码:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(null,"Clicked",Toast.LENGTH_LONG
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的ListView代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="de.matthias.lolchampionowner.app.ChampionActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/championListView"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
像whatsapp那样做了.使用Android Studio,我可以发现这也是一个ListView,但代码太过模糊,无法从中获取任何东西.
这是一张图片:WhatsApp ListView
我不知道如何实现它.我提供任何帮助.
以下是nKn的答案:
你必须覆盖getView方法.这是我的代码,我可以处理来自ListView和CheckBox的两次点击:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = inflater.inflate(R.layout.row_name_check, null);
holder = new ViewHolder();
holder.textView = (TextView) convertView.findViewById(R.id.textViewRow);
holder.checkBox …Run Code Online (Sandbox Code Playgroud)