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);
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值