包含子项的ListView。Android示例
我是android编程的新手,我想创建一个带有ListView和多个子项的应用程序,需要一些建议,链接示例。 应用程序可能如下所示 谢谢包含子项的ListView。Android示例,android,Android,我是android编程的新手,我想创建一个带有ListView和多个子项的应用程序,需要一些建议,链接示例。 应用程序可能如下所示 谢谢 对于此布局,您应该有适配器和自定义适配器的概念 然后浏览以下链接- 可扩展的ListView肯定会解决您的问题 请点击此链接: 让我知道这是否适合你 这是一个简单的可扩展列表示例 首先- 1-在activity_main.xml中创建ExpandableListView 2-初始化并在MainActivity.java文件上设置适配器 3-创建您的适配器 4
对于此布局,您应该有适配器和自定义适配器的概念
然后浏览以下链接-
可扩展的ListView肯定会解决您的问题强> 请点击此链接:
让我知道这是否适合你 这是一个简单的可扩展列表示例 首先- 1-在activity_main.xml中创建ExpandableListView 2-初始化并在MainActivity.java文件上设置适配器 3-创建您的适配器 4-创建父布局和子布局xml文件 我的代码如下 活动_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expandable List"
android:layout_gravity="center"
android:textColor="#30b171"
android:background="#dde3ec"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ExpandableListView
android:id="@+id/expandableListView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ExpandableListView>
</LinearLayout>
MyExpandableListAdapter.java
package com.example.expandblelistapp;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MyExpandableListAdapter extends BaseExpandableListAdapter{
String[] groups={"Android","Apache_tomcat","Apple","Microsoft","Oracle"};
String[][] children={
{"JellyBean","HoneyComb","Kitkat","CupCake","Lollipop",},
{"tomcat server","xampp server","wamp server","lamp server"},
{"iphone","ipad","iwatch"},
{".net","sqlServer","msoffice","xbox","explorer",},
{"sap","business suite"},
};
Integer[] img={R.drawable.android,R.drawable.apachetomcat,R.drawable.apple,
R.drawable.microsoft,R.drawable.oracle};
Integer[][] childrenimg={
{R.drawable.jellybean,R.drawable.gingerbread,R.drawable.kitkat,R.drawable.cupcake,R.drawable.lollipop},
{R.drawable.images,R.drawable.images,R.drawable.images,R.drawable.images,},
{R.drawable.iphone,R.drawable.ipad,R.drawable.iwatch},
{R.drawable.net,R.drawable.outlook,R.drawable.office,R.drawable.xbox,R.drawable.explore},
{R.drawable.osap,R.drawable.oserver},
};
Context ctx;
public MyExpandableListAdapter(Context context) {
ctx=context;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return children[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return children[groupPosition].length;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.child_layout,parent,false);
ImageView i=(ImageView) convertView.findViewById(R.id.imageView2);
i.setImageResource(childrenimg[groupPosition][childPosition]);
TextView dis=(TextView)convertView.findViewById(R.id.childtext);
dis.setText(getChild(groupPosition, childPosition).toString());
return convertView;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groups[groupPosition];
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return groups.length;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.parent_layout,parent,false);
ImageView i=(ImageView) convertView.findViewById(R.id.imageView1);
i.setImageResource(img[groupPosition]);
TextView dis=(TextView)convertView.findViewById(R.id.parenttext);
dis.setText(groups[groupPosition]);
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return false;
}
}
parent_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/parenttext"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/childtext"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Large Text"
android:textSize="15sp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
child_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/parenttext"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/childtext"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Large Text"
android:textSize="15sp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
阅读谷歌文档(例如),开始编码,当您遇到特定问题时,返回代码。您应该参考RecyclerView而不是ListView。