onListItemClick方法调用不成功,和组件聚焦问题无关,求助

mtzy1992 2016-05-13 02:00:21
package criminalintent.android.jon.com.criminalintent;

import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

/**
* Created by pyzhu on 16/5/12.
*/
public class CrimeListFragment extends ListFragment {
private ArrayList<Crime> mCrimes;
private static final String TAG = "Fun";
private String time;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTitle(R.string.crimes_title);
mCrimes = CrimeLab.get(getActivity()).getCrimes();
CrimeAdapter adapter = new CrimeAdapter(mCrimes);
setListAdapter(adapter);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Crime c = ((CrimeAdapter) getListAdapter()).getItem(position);
// Log.d(TAG, c.getTitle() + "was clicked");
//// Intent i = new Intent(getActivity(), CrimeActivity.class);
// startActivity(i);
}

private class CrimeAdapter extends ArrayAdapter<Crime> {
public CrimeAdapter(ArrayList<Crime> crimes) {
super(getActivity(), 0, crimes);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.list_item_crime, null);
}
Crime c = getItem(position);
TextView titleTextView = (TextView) convertView.findViewById(R.id.crime_list_item_titleTextView);
titleTextView.setText(c.getTitle());
TextView dateTextView = (TextView) convertView.findViewById(R.id.crime_list_item_dateTextView);
time = new dateFormat().getDate(c.getDate());
dateTextView.setText(time);
CheckBox solvedCheckBox = (CheckBox) convertView.findViewById(R.id.crime_list_item_solvedCheckBox);
solvedCheckBox.setChecked(c.isSolved());
return convertView;
}
}
}
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
山鹰1985 2016-05-14
  • 打赏
  • 举报
回复
引用 6 楼 mtzy1992 的回复:
ListView是内置于CrimeListFragment的啊
是继承的? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActivity().setTitle(R.string.crimes_title); mCrimes = CrimeLab.get(getActivity()).getCrimes(); CrimeAdapter adapter = new CrimeAdapter(mCrimes); setListAdapter(adapter); } 你这段也没有调用啊,如果是继承的,那么也该有个 setOnItemClickListener,不然鬼知道,你要点别人ListView的哪个Item.
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
现在的情况是listView已经调用Crimeadapter的getView方法得到了视图,只是点击子视图时候,没反应,也就是onListItemClick方法没有响应
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
ListView是内置于CrimeListFragment的啊
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New CheckBox" android:id="@+id/crime_list_item_solvedCheckBox" android:gravity="center" android:layout_alignParentRight="true" android:enabled="false" android:focusable="false" android:padding="4dp" android:checked="false"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Crime title" android:id="@+id/crime_list_item_titleTextView" android:layout_toLeftOf="@+id/crime_list_item_solvedCheckBox" android:textStyle="bold" android:paddingLeft="4dp" android:paddingRight="4dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Crime date" android:id="@+id/crime_list_item_dateTextView" android:layout_below="@+id/crime_list_item_titleTextView" android:layout_toLeftOf="@+id/crime_list_item_solvedCheckBox" android:paddingLeft="4dp" android:paddingRight="4dp" android:paddingTop="4dp" /> </RelativeLayout>
山鹰1985 2016-05-13
  • 打赏
  • 举报
回复
引用 3 楼 mtzy1992 的回复:
用日志跟踪发现CrimeListFragment好像根本没被启动。
你的 ListView 在哪里? 我没见你的 ListView 有声明, 也没 findViewById ,更没 setOnItemClickListener.
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
用日志跟踪发现CrimeListFragment好像根本没被启动。
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
CheckBox组件已经设置无法聚焦了
mtzy1992 2016-05-13
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New CheckBox" android:id="@+id/crime_list_item_solvedCheckBox" android:gravity="center" android:layout_alignParentRight="true" android:enabled="false" android:focusable="false" android:padding="4dp" android:checked="false"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Crime title" android:id="@+id/crime_list_item_titleTextView" android:layout_toLeftOf="@+id/crime_list_item_solvedCheckBox" android:textStyle="bold" android:paddingLeft="4dp" android:paddingRight="4dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Crime date" android:id="@+id/crime_list_item_dateTextView" android:layout_below="@+id/crime_list_item_titleTextView" android:layout_toLeftOf="@+id/crime_list_item_solvedCheckBox" android:paddingLeft="4dp" android:paddingRight="4dp" android:paddingTop="4dp" /> </RelativeLayout>

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧