Android的编程 – 帖子 11: 在的ListView Android版
由 2 所有以前的理论确保您有超过概要, 今天我们返回到代码与所有的ListView.
ListView控件就像它的名字, 列表是一个列表, 显示查看, 即显示列表. 如果你使用的是Android手机,你会看到它无处不在, 从通讯录, 好友列表, 聊天列表,… ListView的都是.
[qads]
在这篇文章中, 我会引导你创建一个最简单的ListView, ListView控件要发布下列复杂. 首先,我们创建应用程序包括我们学到如下的课程表:

该项目创建离线空活动.
如何 1: 从创建数组列表
首先,我们的接口设计. 该接口是非常简单的ListView, 我们只是对象的ListView完成.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.nguyenvanquan7826.tut11listview.MainActivity">
<ListView
android:id="@+id/lvTUT"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
当您为ListView控件设置ID,我们将看到如下界面:

在视图, 每个项目 1 运行时,ListView控件元素, 在这里,他们只是为我们描述会表现出这样的ListView, 但实际上,我们没有关于在列表中离线的元素数据.
接下来,打开文件RES /价值/出,并添加以下string.xml:
<resources>
<string name="app_name">TUT11ListView</string>
<string-array name="tut_android">
<item>Bài 1: Hello World</item>
<item>Bài 2: TextView, EditText, Button</item>
<item>Bài 3: Bắt sự kiện click Button</item>
<item>Bài 4: Thiết kế giao diện với RelativeLayout</item>
<item>Bài 5: Thiết kế giao diện với LinearLayoout</item>
<item>Bài 6: Thực hành xây dựng ứng dụng Calculator</item>
<item>Bài 7: Toast, CheckBox, RadioButton, Dialog</item>
<item>Bài 8: Intent – Chuyển đổi giữa các màn hình</item>
<item>Bài 9: Cấu trúc Project</item>
<item>Bài 10: Vòng đời Activity</item>
</string-array>
</resources>
这里, 卡 字符串数组 该卡可以包含一个字符串列表, 每个放置在卡链 项目.
现在是时候提上显示的ListView java代码数据的时间.
package com.nguyenvanquan7826.tut11listview;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity {
private ListView lvTut;
private String[] listData;
private ArrayAdapter<String> adapter;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
connectView();
loadData();
}
private void connectView() {
lvTut = (ListView) findViewById(R.id.lvTUT);
}
private void loadData() {
// get data (string array) from xml file
listData = context.getResources().getStringArray(R.array.tut_android);
// create adapter with listData and layout item
adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, listData);
lvTut.setAdapter(adapter);
}
}
在上面的代码, 你的注意力产生线适配器, 我们有 3 参数是上下文 (上下文), 布局, 和的ListData. 在其中布局是 android.R.layout.simple_list_item_1 可用由于显示一个文件系统 1 文本和我们用它的简单列表.
从XML文件字符串数组取线将回到我们 串[], 所以除了在XML文件中的将字符串, 我们可以直接在这里指定的字符串数组,我们可以写出如下:
private void loadData() {
listData = new String[] {
"Bài 1: Hello World",
"Bài 2: TextView, EditText, Button",
"Bài 3: Bắt sự kiện click Button"
};
// create adapter with listData and layout item
adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, listData);
lvTut.setAdapter(adapter);
}
如何 2: 从创建播放列表的ArrayList
ArrayList的是我们使用的最有ListView控件组件特别是当我们的名单总是变化. 下面的代码演示了如何使用ArrayList的.
package com.nguyenvanquan7826.tut11listview;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ListView lvTut;
private ArrayList<String> listData;
private ArrayAdapter<String> adapter;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
connectView();
loadData();
}
private void connectView() {
lvTut = (ListView) findViewById(R.id.lvTUT);
}
private void loadData() {
listData = new ArrayList<>();
listData.add("Bài 1: Hello World");
listData.add("Bài 2: TextView, EditText, Button");
listData.add("Bài 3: Bắt sự kiện click Button");
listData.add("Bài 4: Thiết kế giao diện với RelativeLayout");
listData.add("Bài 5: Thiết kế giao diện với LinearLayoout");
// create adapter with listData and layout item
adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, listData);
lvTut.setAdapter(adapter);
}
}
您收到的结果将无法从所做的所有的阵列不同. 但在这里我想提一提你的灵活性,在列表中添加或删除元素. 要做到这一点,你继续以后编辑界面.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.nguyenvanquan7826.tut11listview.MainActivity">
<EditText
android:id="@+id/editTut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/btnAdd"
android:hint="Enter tut title" />
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Add" />
<ListView
android:id="@+id/lvTUT"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/btnAdd" />
</RelativeLayout>
当您单击Add按钮, 我们添加到列表.
package com.nguyenvanquan7826.tut11listview;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ListView lvTut;
private ArrayList<String> listData;
private ArrayAdapter<String> adapter;
private EditText editTut;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
connectView();
loadData();
}
private void connectView() {
lvTut = (ListView) findViewById(R.id.lvTUT);
editTut = (EditText) findViewById(R.id.editTut);
findViewById(R.id.btnAdd).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addTut();
}
});
}
private void loadData() {
listData = new ArrayList<>();
listData.add("Bài 1: Hello World");
listData.add("Bài 2: TextView, EditText, Button");
listData.add("Bài 3: Bắt sự kiện click Button");
listData.add("Bài 4: Thiết kế giao diện với RelativeLayout");
listData.add("Bài 5: Thiết kế giao diện với LinearLayoout");
// create adapter with listData and layout item
adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, listData);
lvTut.setAdapter(adapter);
}
private void addTut(){
String tut = editTut.getText().toString().trim();
if(TextUtils.isEmpty(tut)) {
Toast.makeText(context, "Please enter tut title", Toast.LENGTH_SHORT).show();
return;
}
listData.add(tut);
// update data to show on listview
adapter.notifyDataSetChanged();
}
}
在上面的代码命令你的注意力 adapter.notifyDataSetChanged();, 我们所说的每一次它的我们的数据更改,如添加的列表, 删除或修改某些元素.
赶在ListView元素的click事件
我们经常通过点击元素与列表中的元素的工作即. 例如,点击联系人之一打开看到有关此人的详细信息,… 因此,如何捕捉到的ListView元素的click事件? 你刚才 setOnItemClickListener 对于ListView控件完成.
lvTut.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(context, listData.get(i), Toast.LENGTH_SHORT).show();
// do something
}
});
在功能上 onItemClick 你看到变量 INT I, 它的元素的位置被点击中的列表,其中.
在这里本文结束. 所以你需要牢牢守住这个帖子到下线下一篇文章将更加困难.



他的后熄灭 :))
挺好.