在Activity里显示ListView列表

EX04_19.java 
package irdc.ex04_19;
import android.app.Activity;
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView;
import android.widget.ArrayAdapter; 
import android.widget.LinearLayout; 
import android.widget.ListView; 
import android.widget.TextView; 
public class EX04_19 extends Activity 
{ 
  private static final String[] array = { "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" }; 
  LinearLayout myLinearLayout; 
  TextView myTextView; 
  ListView myListView;
  /** Called when the activity is first created. */
  @Override 
  public void onCreate(Bundle savedInstanceState) 
  { 
    super.onCreate(savedInstanceState);
    /* 新增LinearLayout */ 
    myLinearLayout = new LinearLayout(this); 
    myLinearLayout.setOrientation(LinearLayout.VERTICAL);
    myLinearLayout.setBackgroundColor(android.graphics.Color.WHITE);
    /* 新增TextView */
    myTextView = new TextView(this); 
    LinearLayout.LayoutParams param1 = 
      new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    myTextView.setText(R.string.title);
    myTextView.setTextColor(getResources().getColor(R.drawable.blue)); 
    /* 将TextView加到myLinearLayout */ 
    myLinearLayout.addView(myTextView, param1); 
    /* 新增ListView */ 
    myListView = new ListView(this);
    LinearLayout.LayoutParams param2 = 
      new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    myListView.setBackgroundColor(getResources().getColor(R.drawable.ltgray));
    /* 将ListView加到myLinearLayout */
    myLinearLayout.addView(myListView, param2); 
    /* 将LinearLayout加到ContentView */
    setContentView(myLinearLayout); 
    /* new ArrayAdapter对象并将array字符串数组传入 */ 
    ArrayAdapter adapter =
      new ArrayAdapter(this, R.layout.my_simple_list_item, array); 
    /* 将ArrayAdapter加入ListView对象中 */
    myListView.setAdapter(adapter); 
    /* myListView加入OnItemSelectedListener */ 
    myListView .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    { 
      @Override 
      public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) 
      { 
        /* 使用getSelectedItem()将选取的值带入myTextView中 */ 
        myTextView.setText("你选的是" + arg0.getSelectedItem().toString()); 
        }
      @Override 
      public void onNothingSelected(AdapterView arg0) 
      { 
        // TODO Auto-generated method stub 
        } 
      }); 
    /* myListView加入OnItemClickListener */ 
    myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
      @Override 
      public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) 
      { 
        /* 使用String[index],arg2为点选到ListView的index,并将值带入myTextView中 */ 
        myTextView.setText("你选的是" + array[arg2]); 
        }
      }); 
    } 
  }
      
 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <TextView  
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:text="@string/hello"
  />
</LinearLayout>

 my_simple_list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/myCheckedTextView1" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:textColor="@drawable/black" 
/> 

 color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <drawable name="black">#000000</drawable>
  <drawable name="white">#FFFFFFFF</drawable>
  <drawable name="blue">#0000FF</drawable>
  <drawable name="ltgray">#CCCCCC</drawable>
</resources>

 string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="title">使用ListView显示明细列表</string>
  <string name="hello">Hello World, empty</string>
  <string name="app_name">EX04_19</string>
</resources>

 

在添加ArrayAdapter中,使用ArrayAdapter(Context context,int textViewResourceId,T[] objcets)

例外范例中都是动态的构造LinearLayout,TextView,ListView。

如上还有一点可值得一提,可以用ListView里的setChoiceMode,传入的值有三种

ListView.CHOICE_MODE_NONE        0    没有指定选择方式

ListView.CHOICE_MODE_SINGLE      1     最多一个

ListView.CHOICE_MODE_MULTIPLE   2      多选

当ArrayAdapter的构造器textViewResourceId传入Android.R.layout.simple_list_item_multiple_choice,代表ListView是可多选的,此时就需要ListView的setChoiceMode设置了。

 

 

posted @ 2012-02-28 15:38  慢~慢来  阅读(679)  评论(0编辑  收藏  举报