main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <Button
- android:id="@+id/myButton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="点击"
- />
- <ListView
- android:id="@android:id/list"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:drawSelectorOnTop="true"
- />
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="点击"
/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
/>
</LinearLayout>
android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到
android:drawSelectorOnTop="false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的
MytestActivity.java
- package com.android.demo;
- import android.app.ListActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ListView;
- public class MytestActivity extends ListActivity {
- Button MyButton;
- String[] items={"One", "Two", "Three", "Four", "Five"};
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- MyButton = (Button)findViewById(R.id.myButton);
- setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items));
- }
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- // TODO Auto-generated method stub
- MyButton.setText(items[position]);
- super.onListItemClick(l, v, position, id);
- }
- }
package com.android.demo;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MytestActivity extends ListActivity {
Button MyButton;
String[] items={"One", "Two", "Three", "Four", "Five"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyButton = (Button)findViewById(R.id.myButton);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
MyButton.setText(items[position]);
super.onListItemClick(l, v, position, id);
}
}
结果如图
5)不同的呈现模式
我们修改ArrayAdapter的第二个显示的模式。另外可以通过getListView()获取ListView的对象,设置ListView的一些属性,ListView的一些常用方法:setChoiceMode(),getCheckedItemPositions() 。
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);//表明有选项,如果不设置,缺省为none,即我们点击后仍无反应setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice ,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要点击就会触发Callback,而不过是的点击后选上还是变为取消。setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
接着依次为上面三种格式。
- package com.android.demo;
- import android.app.ListActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ListView;
- public class MytestActivity extends ListActivity {
- Button MyButton;
- String[] items={"One", "Two", "Three", "Four", "Five"};
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- MyButton = (Button)findViewById(R.id.myButton);
- /*
- setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice, items));
- getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
- */
- /*
- setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, items));
- getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
- //getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
- */
- setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked,items));
- //getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
- getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
- }
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- // TODO Auto-generated method stub
- MyButton.setText(items[position]);
- super.onListItemClick(l, v, position, id);
- }
- }
list_items.xml
- <?xml version="1.0" encoding="utf-8" ?>
- <TextView
- android:text="TextView02"
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/ItemText" />
<?xml version="1.0" encoding="utf-8" ?>
<TextView
android:text="TextView02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ItemText" />
main.xml
- <?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout
- android:id="@+id/LinearLayout01"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <Button
- android:id="@+id/mybutton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="确定"
- />
- <ListView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/ListView01" />
- </LinearLayout>
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="确定"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ListView01" />
</LinearLayout>
MytesActivity.java
- package com.android.demo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ListAdapter;
- import android.widget.ListView;
- public class MytesActivity extends Activity {
- String[] items={"One", "Two", "Three", "Four", "Five"};
- Button myButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ListView list = (ListView) findViewById(R.id.ListView01);
- myButton = (Button)findViewById(R.id.mybutton);
- ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.list_items, items);
- list.setAdapter(adapter);
- list.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- myButton.setText("点击第"+arg2+"个项目");
- }
- });
- }
- }
package com.android.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
public class MytesActivity extends Activity {
String[] items={"One", "Two", "Three", "Four", "Five"};
Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list = (ListView) findViewById(R.id.ListView01);
myButton = (Button)findViewById(R.id.mybutton);
ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.list_items, items);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
myButton.setText("点击第"+arg2+"个项目");
}
});
}
}
结果如图