android listview onitemclick

 在Android中ListView的使用较为复杂一点,也就是配置其Adapter,Adapter有几种,有ArrayAdapter,SimpleAdapter等,首先要生成一个ListView(当然可以使用ListActivity,此Activity整合了ListView)然后用Adapter来设定ListView的显示数据及布局方式,然后再来响应OnItemClick 事件,或者在ListActivity改写onListItemClick 响应事件函数。看如下代码演示了使用ListActivity:


import  java.util.ArrayList;
import  java.util.HashMap;
import  java.util.Map;
import  android.app.ListActivity;
import  android.os.Bundle;
import  android.view.View;
import  android.widget.ListView;
import  android.widget.SimpleAdapter;

public   class  Test  extends  ListActivity {
 @Override
 
protected   void  onListItemClick(ListView l, View v,  int  position,  long  id) {
  
//  TODO Auto-generated method stub
   super .onListItemClick(l, v, position, id);
  
this .setTitle( this .mModelData.get(position).get( " type " ).toString());
 }
 SimpleAdapter adapter 
=   null ;
 
private  ArrayList < Map < String, Object >>  mModelData  =   null ;
    
/**  Called when the activity is first created.  */
    @Override
    
public   void  onCreate(Bundle savedInstanceState) {
        
super .onCreate(savedInstanceState);
        initModelData();
        adapter 
=   new  SimpleAdapter( this , mModelData, android.R.layout.two_line_list_item,  new  String[]{ " name " },  new   int []{android.R.id.text1});
        
this .setListAdapter(adapter);
        
// setContentView(R.layout.main);
    }
    
public   void  initModelData()
    {
     mModelData 
=   new  ArrayList < Map < String, Object >> ();
     Map
< String, Object >  item  =   new  HashMap < String,Object > ();
     item.put(
" name " " Linux " );item.put( " type " " OS " );
     mModelData.add(item);
     Map
< String, Object >  item2  =   new  HashMap < String,Object > ();
     item2.put(
" name " " Android " );item2.put( " type " " Platform " );
     mModelData.add(item2);
     Map
< String, Object >  item3  =   new  HashMap < String,Object > ();
     item3.put(
" name " " Tomato " );item3.put( " type " " Fruit " );
     mModelData.add(item3);
     
    }
}

下面代码显示了,使用ListView 
+  Activity:


import  android.app.Activity;
import  android.os.Bundle;
import  android.view.View;
import  android.widget.AdapterView;
import  android.widget.ArrayAdapter;
import  android.widget.ListView;
import  android.widget.AdapterView.OnItemClickListener;

public   class  TestStringList  extends  Activity  implements  OnItemClickListener {
    @Override
 
public   void  onItemClick(AdapterView <?>  arg0, View arg1,  int  arg2,  long  arg3) {
  
this .setTitle( " You Click Item: "   +  String.valueOf(arg2));  
 }
 
private  ListView mListView  =   null ;
 @Override
 
protected   void  onCreate(Bundle savedInstanceState) {
  
//  TODO Auto-generated method stub
   super .onCreate(savedInstanceState);
  mListView 
=   new  ListView( this );
  mListView.setOnItemClickListener(
this );
  ArrayAdapter
< String >  adapter  =   new  ArrayAdapter < String > ( this ,android.R.layout.simple_list_item_checked,
    
new  String[]{ " ItemA " " ItemB " " ItemC " });
  mListView.setAdapter(adapter);
  
this .setContentView(mListView);
 }

}


 

你可能感兴趣的:(android listview onitemclick)