Android listview onclicklistener在片段中
我使用的活动根据单击的按钮显示多个片段。我在片段中实现了一个customlistview,但由于某些原因,它根本不会被选中 看起来,Android listview onclicklistener在片段中,android,listview,row,fragment,onitemclicklistener,Android,Listview,Row,Fragment,Onitemclicklistener,我使用的活动根据单击的按钮显示多个片段。我在片段中实现了一个customlistview,但由于某些原因,它根本不会被选中 看起来,onItemClicklistener()根本没有响应,即使我在行选择上设置了布局。以下是我的listview的XML: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" andr
onItemClicklistener()
根本没有响应,即使我在行选择上设置了布局。以下是我的listview的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:descendantFocusability="blocksDescendants"
android:clickable="true"
/>
</LinearLayout>
在
setOnItemClickListener
中,将OnItemClickListener()
放置在片段中
这样做:
public class CustomizedListView extends Fragment implements OnItemClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//the things you want to declare and call
View rootView = inflater.inflate(R.layout.main, container, false);
list=(ListView)rootView.findViewById(R.id.list);
list.setOnClickListener(this);
return rootView;
}
@Override
public void OnClick(View v) {
Toast.makeText(getActivity(), "yoho",Toast.LENGTH_SHORT).show();
}
也读
我不确定android:DegenantFocussability是否导致listView无法获得焦点您的android:id=“@+id/list”上有android:DegenantFocussability=“BlocksDescents”为什么?删除它是否会使单击处理程序工作?是的,将其设置为BlockSubstant会使其阻止其子体以接收焦点。我不确定这是否是问题所在。我删除了它,但仍然无法选择列表视图:我刚刚修复了它。问题出在评级栏上,但我真的不知道为什么我猜某些属性是错误的(请不要在堆栈溢出时将任何问题标记为紧急-志愿者将在空闲时回答)。
public class CustomizedListView extends Fragment implements OnItemClickListener{
// All static variables
static final String KEY_ID = "id";
static final String KEY_TITLE = "";
static final String Area ="Area";
static final String KEY_lat = "";
static final String KEY_lng = "";
static final String KEY_THUMB_URL = "thumb_url";
static final String MetersAway="";
ListView list;
LazyAdapter adapter;
HashMap<String, String> marker;
Context context;
private float rtn;
public String TAG;
public View inst = null;
ArrayList<HashMap<String, String>> locationList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
context = getActivity();
final View rootView = inflater.inflate(R.layout.main, container, false);
locationList = new ArrayList<HashMap<String, String>>();
list=(ListView)rootView.findViewById(R.id.list);
retData();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getActivity(), "yoho",Toast.LENGTH_SHORT).show();
}
});
return rootView;
}
public void retData(){
new Retrieve().execute();//extends asyntask and gets data from my server
}
}
public class CustomizedListView extends Fragment implements OnItemClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//the things you want to declare and call
View rootView = inflater.inflate(R.layout.main, container, false);
list=(ListView)rootView.findViewById(R.id.list);
list.setOnClickListener(this);
return rootView;
}
@Override
public void OnClick(View v) {
Toast.makeText(getActivity(), "yoho",Toast.LENGTH_SHORT).show();
}