我想写一个类似于android手机屏幕的活动。我希望它以Android手机的屏幕风格显示一些信息。 喜欢这个
title1
info
-----------------
title2
info
-----------------
etc.
是否有我可以使用的特殊视图,或者它只是以特定方式放置多个视图的结果?或者我可以使用android studio中的活动模板吗?
答案 0 :(得分:2)
使用ListView
。您可以为单元格创建自定义布局,然后使用数组或光标填充数据。
ListView:一个显示垂直滚动列表中的项目的视图。该 items来自与此视图关联的ListAdapter。
ListAdapter
可以接收数据作为输入。适配器将为其getView()
方法中的每个单元格的布局充气,并将数据分配给单元格中的各个视图。
在此处详细了解ListView
:http://developer.android.com/reference/android/widget/ListView.html
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用ListView
和自定义ArrayAdapter
来创建这样的屏幕。如果您需要有关如何创建自定义ArrayAdapter
的任何帮助,请查看此有用教程here。
答案 3 :(得分:1)
如果您想创建一个简单的列表,那么ListView
可能是最简单的选项。您可能还想查看ListActivity
和/或ListFragment
以进一步简化流程。
如果您打算使用复杂的动画,或者使用动画动态更新列表,RecyclerView
可能会更好,但使用它会更复杂。
ListActivity
的直接实现看起来像这样:
public class MainActivity extends ListActivity {
String[] titles = { "title one", "title two" };
String[] descriptions = { "desc 1", "desc 2" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ListAdapter() {
除了getCount()
和getView()
之外,保持一致
@Override
public int getCount() {
return titles.length;
}
这将确保列表的长度始终与数组一致。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) parent.getContext().
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.row, parent, false);
} else {
view = convertView;
}
TextView title = (TextView) view.findViewById(R.id.title);
TextView description = (TextView) view.findViewById(R.id.description);
title.setText(titles[position]);
description.setText(descriptions[position]);
return view;
}
row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title"
android:textSize="24sp"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/description"
android:textSize="20sp"/>
</LinearLayout>