ListView和SlidingDrawer

 XML文件

 
main.xml文件
兩個控件按鈕btnListView和btnSlidingDrawer
<Button
                android:id="@+id/listView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/listviewStr" />
 
<Button
                android:id="@+id/btnSlipdingdrawer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/slidingDrawerStr" />
 
 
mylistview.xml文件
 
一個控件ListView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"> 
    </ListView>   
    
</LinearLayout>
 
 
 
mylistview_item.xml文件
 
兩個控制:一個ImageView和一個TextView
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
 
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/a" />
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
 
</LinearLayout>
 
 
myslidingdrawer.xml文件
 
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <SlidingDrawer
        android:id="@+id/slidingDrawer1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:content="@+id/content"
        android:handle="@+id/handle" >
 
        <Button
            android:id="@+id/handle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Handle" />
 
        <LinearLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <ListView
                android:id="@+id/slidingDrawerListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"> 
            </ListView>
        </LinearLayout>
    </SlidingDrawer>
 
</LinearLayout>
 
 
AndroidMainfest.xml文件
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.newer.p0202"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk android:minSdkVersion="8" />
 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".P0202Activity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="MyListView"></activity>
        <activity android:name="MySlidingDrawer"></activity>
        <activity android:name="MyViewFlipper"></activity> 
    </application>
 
</manifest>
 
java代碼
 
P0202Activity類
主頁面繼承Activity實現OnClickListenere
 
public class P0202Activity extends Activity implements OnClickListener{
     public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstenceState);
          setContentView(R.layout.main);
 
          //啓動ListView Activity按鈕
          Button btnListView = (Button)findViewById(R.id.listView);
          btnListView.setOnClickListener(this);
 
          
     }
     public void onClick(View v){
          switch(v.getId()){
          case R.id.listView:
               Intent intent = new Intent(this,MyListView.class);
               startActivity(intent);
               break;
          case R.id.btnSlidingdrawer:
               Intent intent2 = new Intent(this,MySlidingDrawer.class);
               startActivity(intent2);
               break;
          default:
               break;
          }
     }
}
 
 
 
MyListView類繼承Activity
 
public class MyListView extends Activity{
     protected void onCreate(Bundle savedInstanceState)
         super.onCreate(savedInstanceState);
         setContentView(R.layout.mylistview);
 
         //模擬數據
         List<DataBean> dataList = new ArrayList<DataBean>();
         for(int idx=0;idx<20;idx++){
             //具體的每一條數據
             DataBean dataBean = new DataBean();
             dataBean.imageId = R.drawable.a;
             dataBean.imageDescription = "具體的說明"+idx;
             dataList.add(dataBean);
         }
 
         MyListViewAdapter myListViewAdapter = new MyListViewAdapter(dataList,this);
         //得到listview控件
         ListView listView = (ListView)findViewById(R.id.listView1);
         //設置適配器,讓listview根據適配器來顯示數據
         listView.setAdapter(myListViewAdapter);         
     }
}
 
 
創建一個類DataBean
 
public class DataBean{
    public int imageId;
    public String imageDescription;
}
 
 
 
創建一個類MyHandler
 
public class MyHandler{
    public ImageView imageView;
    public TextView textView;
}
 
 
 
適配器類:
MyListViewAdapter類繼承BaseAdapter
 
public class MyListViewAdapter extends BaseAdapterP{
    public int getCount(){
        return dataList.size();
    }
    public Object getItem(int position){
        return null;
    }
    public long getItemId(int position){
        return 0;
    }
    public View getView(int position, View convertView, ViewGroup parent){
        //三種方式
        //LayoutInflater.from(context);
        //(LinearLayout)activity.getlayoutInflater();
        //LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
        //樣式膨脹(要從layout資源中動態的讀取一個XML文檔)
        //效率差的方式
        //LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //LinearLayout lineanLayout = (LinearLayout)layoutInflater.inflater(R.layout.mylistview_item,null);
        //得到當前線性佈局的兩個控件
        //ImageView imageView = (ImageView)lineanLayout.findViewById(R.id.imageView1);
        //TextView textView = (TextView)lineanLayout.findViewById(R.id.textView1);
        //imageView.setImageResource(dataList.get(position).imageId);
        //textView.setText(dataList.get(position).imageDescription);
        //return lineanLayout;
 
 
        //效率高的方式
        MyHandler myHandler = new MyHandler();
        if(null == convertView){//剛開始第一次convertView裏面是沒有對象
            LayoutInflater layoutInflater = (LayoutInflater)myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout lineanLayout = (LinearLayout)layoutInflater.inflater(R.layout.mylistview_item,null);
            //得到當前線性佈局的兩個控件
            ImageView imageView = (ImageView)lineanLayout.findViewById(R.id.imageView1);
            TextView textView = (TextView)lineanLayout.findViewById(R.id.textView1);
            myHandler.imageView = imageView;
            myHandler.textView = textView;
        
            convertView = lineanLayout; 
 
        }
        myHandler = (MyHandler)convertView.getTag();
        myHandler.imageView.setImageResoure(dataList.get(position).imageId);
        myHandler.textView.setText(dataList.get(position).imageDescription);
        return convertView;
    }
}
 
 
 
 
 
MySlidingDrawer類繼承Activity
 
public class MySlidingDrawer extends Activity{
     protected void onCreate(Bundler savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.myslidingdrawer);
 
          //模擬數據
          List<DataBean> dataList = new ArrayList<DataBean>();
          for(int idx=0;idx<20;idx++){
              //具體的每一條數據
              DataBean dataBean = new DataBean();
              dataBean.imageId = R.drawable.a;
              dataBean.imageDescription = "具體的說明"+idx;
              dataList.add(dataBean);
          }
          MyListViewAdapter myListViewAdapter = new MyListViewAdapter(dataList,this);
          ListView listView = (ListView)findViewById(R.id.slidingDrawerListView);
          listView.setAdapter(myListViewAdapter);
     }
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章