Java 在本例中,如何实现onchildclick侦听器?
所以我有一个可扩展的列表视图。我想要的是让每个孩子都可以点击。如果我按第一个键,我想打开类1,如果我按第二个键,我想打开类2,如果我按第三个键,我想打开类3,依此类推。。。我是编程新手,所以请解释我,就像你为傻瓜做的一样 这是我的活动Java 在本例中,如何实现onchildclick侦听器?,java,android,listview,clickable,Java,Android,Listview,Clickable,所以我有一个可扩展的列表视图。我想要的是让每个孩子都可以点击。如果我按第一个键,我想打开类1,如果我按第二个键,我想打开类2,如果我按第三个键,我想打开类3,依此类推。。。我是编程新手,所以请解释我,就像你为傻瓜做的一样 这是我的活动 public class Mecanica extends ExpandableListActivity implements OnChildClickListener { @Override public void onCreate(Bund
public class Mecanica extends ExpandableListActivity implements OnChildClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ExpandableListView expandbleLis = getExpandableListView();
expandbleLis.setDividerHeight(2);
expandbleLis.setGroupIndicator(null);
expandbleLis.setClickable(true);
setGroupData();
setChildGroupData();
NewAdapter mNewAdapter = new NewAdapter(groupItem, childItem);
mNewAdapter.setInflater((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE), this);
getExpandableListView().setAdapter(mNewAdapter);
expandbleLis.setOnChildClickListener(this);
}
public void setGroupData() {
groupItem.add("Directia");
groupItem.add("Franarea");
groupItem.add("Motorul");
groupItem.add("Rotile");
groupItem.add("Siguranta si control");
groupItem.add("Suspensia");
groupItem.add("Transmisia");
}
ArrayList<String> groupItem = new ArrayList<String>();
ArrayList<Object> childItem = new ArrayList<Object>();
public void setChildGroupData() {
/**
* Add Data For TecthNology
*/
ArrayList<String> child = new ArrayList<String>();
child.add("Java");
child.add("Drupal");
child.add(".Net Framework");
child.add("PHP");
childItem.add(child);
/**
* Add Data For Mobile
*/
child = new ArrayList<String>();
child.add("Android");
child.add("Window Mobile");
child.add("iPHone");
child.add("Blackberry");
childItem.add(child);
/**
* Add Data For Manufacture
*/
child = new ArrayList<String>();
child.add("HTC");
child.add("Apple");
child.add("Samsung");
child.add("Nokia");
childItem.add(child);
/**
* Add Data For Extras
*/
child = new ArrayList<String>();
child.add("Contact Us");
child.add("About Us");
child.add("Location");
child.add("Root Cause");
childItem.add(child);
}
}
公共类Mecanica扩展了ExpandableListActivity实现OnChildClickListener{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ExpandableListView expandbleLis=getExpandableListView();
可膨胀的;可膨胀的;可膨胀的;可膨胀的;
expandbleLis.setGroupIndicator(空);
expandbleLis.setClickable(真);
setGroupData();
setChildGroupData();
NewAdapter mNewAdapter=新的NewAdapter(groupItem,childItem);
mNewAdapter.setInflater((LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE),this);
getExpandableListView().setAdapter(mNewAdapter);
expandbleLis.setOnChildClickListener(这个);
}
public void setGroupData(){
集团项目。添加(“董事”);
组项目。添加(“区域”);
集团项目。添加(“Motorul”);
组项。添加(“旋转文件”);
添加(“Sigurata si控制”);
集团项目。添加(“暂记”);
集团项目。添加(“Transmisia”);
}
ArrayList groupItem=新的ArrayList();
ArrayList childItem=新的ArrayList();
public void setChildGroupData(){
/**
*为技术添加数据
*/
ArrayList子项=新的ArrayList();
添加(“Java”);
添加(“Drupal”);
添加(“.Net Framework”);
添加(“PHP”);
添加(子项);
/**
*为手机添加数据
*/
child=newarraylist();
添加(“安卓”);
添加(“移动窗口”);
添加(“iPHone”);
添加(“黑莓”);
添加(子项);
/**
*添加生产数据
*/
child=newarraylist();
儿童。添加(“HTC”);
添加(“苹果”);
添加(“三星”);
添加(“诺基亚”);
添加(子项);
/**
*添加额外的数据
*/
child=newarraylist();
添加(“联系我们”);
添加(“关于我们”);
添加(“位置”);
添加(“根本原因”);
添加(子项);
}
}
和适配器类
@SuppressWarnings("unchecked")
public class NewAdapter extends BaseExpandableListAdapter {
public ArrayList<String> groupItem, tempChild;
public ArrayList<Object> Childtem = new ArrayList<Object>();
public LayoutInflater minflater;
public Activity activity;
public NewAdapter(ArrayList<String> grList, ArrayList<Object> childItem) {
groupItem = grList;
this.Childtem = childItem;
}
public void setInflater(LayoutInflater mInflater, Activity act) {
this.minflater = mInflater;
activity = act;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
tempChild = (ArrayList<String>) Childtem.get(groupPosition);
TextView text = null;
if (convertView == null) {
convertView = minflater.inflate(R.layout.childrow, null);
}
text = (TextView) convertView.findViewById(R.id.textView1);
text.setText(tempChild.get(childPosition));
/*convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(activity, tempChild.get(childPosition),
Toast.LENGTH_SHORT).show();
}
});*/
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return ((ArrayList<String>) Childtem.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return null;
}
@Override
public int getGroupCount() {
return groupItem.size();
}
@Override
public void onGroupCollapsed(int groupPosition) {
super.onGroupCollapsed(groupPosition);
}
@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = minflater.inflate(R.layout.grouprow, null);
}
((CheckedTextView) convertView).setText(groupItem.get(groupPosition));
//((CheckedTextView) convertView).setChecked(isExpanded);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
@SuppressWarnings(“未选中”)
公共类NewAdapter扩展了BaseExpandableListAdapter{
公共ArrayList groupItem,tempChild;
public ArrayList childItem=new ArrayList();
公共布局更扁平,更扁平;
公共活动;
public NewAdapter(ArrayList grList,ArrayList childItem){
groupItem=grList;
this.Childtem=childItem;
}
公共空间设置充气机(LayoutInflater mInflater,活动法){
this.minflater=minflater;
活动=行动;
}
@凌驾
公共对象getChild(int-groupPosition,int-childPosition){
返回null;
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回0;
}
@凌驾
公共视图getChildView(int groupPosition,final int childPosition,
布尔值isLastChild、视图转换视图、视图组父级){
tempChild=(ArrayList)Childtem.get(groupPosition);
TextView text=null;
if(convertView==null){
convertView=minflater.inflate(R.layout.childrow,null);
}
text=(TextView)convertView.findViewById(R.id.textView1);
setText(tempChild.get(childPosition));
/*setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(活动,tempChild.get(childPosition),
吐司。长度(短)。show();
}
});*/
返回视图;
}
@凌驾
公共整数getChildrenCount(整数组位置){
return((ArrayList)Childtem.get(groupPosition)).size();
}
@凌驾
公共对象getGroup(int-groupPosition){
返回null;
}
@凌驾
public int getGroupCount(){
返回groupItem.size();
}
@凌驾
公共void-ongroupposition(int-groupPosition){
super.ongroupposition(groupPosition);
}
@凌驾
已扩展的公共组(int-groupPosition){
super.onGroupExpanded(groupPosition);
}
@凌驾
公共长getGroupId(int-groupPosition){
返回0;
}
@凌驾
公共视图getGroupView(int-groupPosition,布尔值isExpanded,
视图(视图、视图组父级){
if(convertView==null){
convertView=minflater.flate(R.layout.grouprow,null);
}
setText(groupItem.get(groupPosition));
//((CheckedTextView)convertView).setChecked(isExpanded);
返回视图;
}
@凌驾
公共布尔表ID(){
返回false;
}
@凌驾
公共布尔值isChildSelectable(int-groupPosition,int-childPosition){
返回true;
}
}
我在ChildClickListener上找不到您应该实现的
这将允许您访问所单击的特定子项,从而访问项目列表中的位置
实现可能类似于以下示例:
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
// Create a switch that switches on the specific child position.
switch(childPosition) {
case 0:
// Go to child #0 specific class.
Intent child0Intent = new Intent(this, Child0Activity.class);
startActivity(child0Intent);
break;
case 1:
// Go to child #1 specific class.
Intent child1Intent = new Intent(this, Child1Activity.class);
startActivity(child1Intent);
break;
}
return false;
}
有关如何实施的完整示例,请参见:
我在ChildClickListener上找不到您应该实现的
这将允许您访问所单击的特定子项,从而访问项目列表中的位置
实施