我想创建一个以Fragment
作为列表项的Android应用。如果你知道,请有人帮助我。提前谢谢......
答案 0 :(得分:0)
如果您想制作自定义列表元素,例如,将列表项设置为包含多个内容的另一个布局,例如ImagesViews,Text Views等。每个项目都有不同的视图。我正在做这样的事情:
第1步:在我的适配器中,我将布局设置为行元素。
以下是代码:
这里我有两种不同的布局..一种用于主行,另一种用于元素。 (你在getView()中看到的其他布局)。
class yourAdapter extends BaseAdapter {
Context context;
String[] data;
private LayoutInflater inflater = null;
public yourAdapter(Context context, String[] data) {
this.context = context;
this.data = data;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.length;
}
@Override
public Object getItem(int position) {
return data[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (vi == null)
vi = inflater.inflate(R.layout.row, null);
if (position == 0) {
vi = inflater.inflate(R.layout.help_row1, null);
}
if (position == 1) {
vi = inflater.inflate(R.layout.help_row_2, null);
}
if (position == 2) {
vi = inflater.inflate(R.layout.help_row_3, null);
}
if (position == 3) {
vi = inflater.inflate(R.layout.help_row_4, null);
}
return vi;
}
}
第2步:这就是我的onCreate()的样子:
注意:当我设置适配器时,您可以看到有4个字符串,因为使用了4个布局。
现在,您可以只使用自定义布局在列表视图中使用任意数量的项目,而不是仅使用四种布局。取决于您的数组大小或字符串数组长度。在这种情况下,我只使用4个布局,所以我没有做任何额外的事情。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.help);
TextView close = (TextView) findViewById(R.id.close_button);
close.setOnClickListener(this);
mActivity = this;
listview = (ListView) findViewById(R.id.helpListView);
mAdapter = new yourAdapter(this, new String[] { "Item1", "Item2",
"Item3", "Item4" });
listview.setAdapter(mAdapter);
}
第3步:此示例使用了布局:
help.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/header_gradient"
android:gravity="center"
android:text="Help Page"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#0099cc"
android:textSize="24sp"
android:textStyle="bold" />
<ListView
android:id="@+id/helpListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.63"
android:divider="#000000"
android:dividerHeight="6dp" >
</ListView>
<TextView
android:id="@+id/close_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/header_gradient"
android:gravity="center"
android:text="Close"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#0099cc"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
row.xml :在此处使用视图。
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</View>
最后,其中一个布局:
<强> help_row1 强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:background="#666666">
<TextView
android:id="@+id/help_text_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Step 1:"
android:textColor="#0099cc"
android:layout_marginTop="10dp"
android:background="@drawable/header_gradient"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/help_text_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Set Destination by entering number or select the contact from your contact list."
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/help_text_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="For Example: Just Enter the number in the empty text field or simply select the destination by choosing contact from the contact list."
android:layout_marginTop="10dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="5dp"
android:src="@drawable/asset1" />
</LinearLayout>
就是这样。现在,您可以使用此示例来构建自己的自定义列表视图。 在您的情况下,您可以使用片段并为视图使用不同的数据。
希望这个例子能说明如何将list作为行用于listview。
如果有人能够更好地回答这个问题,那对我来说也会非常有帮助。谢谢。:)
答案 1 :(得分:-1)
在自定义适配器内部,而不是使用TextView
(或其他组件)使用FragmentContainer
。