Android 不能';t单击可展开的listview项/子项时启动/打开活动,以及如何在此处实现Toast
我在一个片段中创建了可扩展的listview,效果很好。但是,我希望在单击可展开的listview子项时启动活动。我已经找了好几个小时试图找到解决这个问题的办法,但我找不到。有人请提供此问题的代码Android 不能';t单击可展开的listview项/子项时启动/打开活动,以及如何在此处实现Toast,android,android-layout,android-intent,android-listview,android-emulator,Android,Android Layout,Android Intent,Android Listview,Android Emulator,我在一个片段中创建了可扩展的listview,效果很好。但是,我希望在单击可展开的listview子项时启动活动。我已经找了好几个小时试图找到解决这个问题的办法,但我找不到。有人请提供此问题的代码 import android.R.color; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; impor
import android.R.color;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.TextView;
import android.widget.Toast;
// This is a listfragment class
public class Categories extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.categories, null);
ExpandableListView elv = (ExpandableListView) v.findViewById(R.id.expandableListView1);
elv.setAdapter(new SavedTabsListAdapter());
return v;
}
public class SavedTabsListAdapter extends BaseExpandableListAdapter {
private String[] groups = { "Men", "Women"};
private String[][] children = {
{ "Men's accessories", "Men's trousers"},
{ "Dresses", "Women's trousers"}
};
@Override
public int getGroupCount() {
return groups.length;
}
@Override
public int getChildrenCount(int i) {
return children[i].length;
}
@Override
public Object getGroup(int i) {
return groups[i];
}
@Override
public Object getChild(int i, int i1) {
return children[i][i1];
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
TextView textView = new TextView(CategoriesFragment.this.getActivity());
textView.setText(getGroup(i).toString());
return textView;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
TextView textView = new TextView(CategoriesFragment.this.getActivity());
textView.setText(getChild(i, i1).toString());
return textView;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
}
Intent k;
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
switch(childPosition){
case 0:
k = new Intent(getActivity().getApplicationContext(), Baby.class);
break;
case 1:
k = new Intent(getActivity().getApplicationContext(), Baby1.class);
break;
}
startActivity(k);
return true;
}
}
当您单击子元素what
childposition
时,您将进入OnChildClick
函数
您在哪里设置了一个ChildClickListener
??如果没有设置,则在此代码之后ExpandableListView elv=(ExpandableListView)v.findViewById(R.id.ExpandableListView 1)代码>写这行elv.setOnChildClickListener(“你的听众”)代码>
此外,为了获得最佳实践,您可以用以下方式编写上述侦听器和OnChildClick函数:
首先删除OnChildClick和OnChildClickListener(如果有),然后将代码放在上面的elv.setOnChildClickListener(“您的_listener”)代码>这边-
elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
switch(childPosition){
case 0:
k = new Intent(getActivity().getApplicationContext(), Baby.class);
break;
case 1:
k = new Intent(getActivity().getApplicationContext(), Baby1.class);
break;
}
startActivity(k);
return true;
}
});
当您单击子元素whatchildposition
进入OnChildClick
函数时,请告知您是否仍面临任何问题
您在哪里设置了一个ChildClickListener
??如果没有设置,则在此代码之后ExpandableListView elv=(ExpandableListView)v.findViewById(R.id.ExpandableListView 1)代码>写这行elv.setOnChildClickListener(“你的听众”)代码>
此外,为了获得最佳实践,您可以用以下方式编写上述侦听器和OnChildClick函数:
首先删除OnChildClick和OnChildClickListener(如果有),然后将代码放在上面的elv.setOnChildClickListener(“您的_listener”)代码>这边-
elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
switch(childPosition){
case 0:
k = new Intent(getActivity().getApplicationContext(), Baby.class);
break;
case 1:
k = new Intent(getActivity().getApplicationContext(), Baby1.class);
break;
}
startActivity(k);
return true;
}
});
如果您仍然面临任何问题,请告诉我们这是您所需要的吗?谢谢您的帮助,尽管我还是做不到。如何为每个项目设置条件?你能提供一些进一步的细节或可能是代码请。提前感谢。在getChildView函数中,您需要根据位置或数据向textview添加/删除onClicklistener。在这种情况下,单击Listener开始活动感谢您的帮助。然而,我仍然无法实现它。请帮忙。我是Android开发的新手。这就是你需要的吗?谢谢你的帮助,尽管我还是做不到。如何为每个项目设置条件?你能提供一些进一步的细节或可能是代码请。提前感谢。在getChildView函数中,您需要根据位置或数据向textview添加/删除onClicklistener。在这种情况下,单击Listener开始活动感谢您的帮助。然而,我仍然无法实现它。请帮忙。我是Android开发的新手。