从上一次提到的listview,这一次用另一种方式实现;使用listactivity这一种特殊的activity。
效果图:
和上一课的activity不同的地方是;我为listview的每一个view设置了事件驱动,当点击时能响应对应的事件。
先来看一下布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/u_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#DC143C"
android:textSize="24dip"
android:background="#000000"
>
</TextView>
这一块和上一课一样,都是只用一个Textview作为基本的View
对应的代码:
package com.example.listview1;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class useractivity extends ListActivity {//请注意此处的activity为listactivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//此处使用泛型创建了Arraydapter,作为数据的绑定,这里参数的含义和上一次课一样
ArrayAdapter<String> aa=new ArrayAdapter<String>(this,R.layout.user,new String[]{"G1","G2","G3"});
//此处所用方法是将arraydapter数据布局到listview中
setListAdapter(aa);
//此处是得到当前listactivity的listview的对象
ListView listview=this.getListView();
//设置每一行的事件驱动
listview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
String str=((TextView)arg1).getText().toString();//此处的arg1是每一行的view
Toast to=Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG);
to.setGravity(Gravity.CENTER, 0, 0);//将Toast显示设置在布局的中间位置
to.show();
}
});
}
}