那些复杂的列表总要弄个清楚——(四)激动人心的BaseAdapter之二

与“激动人心的BaseAdapter之一”相似

只不过这次的列表项填充方式有所不同,比上一个复杂一些些

效果图:


还是以空格拆分

第一个布局文件(主布局):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.arial.listview4.MainActivity" 
    android:orientation="vertical">

    <ListView 
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp"
        android:dividerHeight="2dp"></ListView>
    
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        
        <EditText 
            android:id="@+id/et"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"/>
        
        <Button 
            android:id="@+id/btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:textSize="18sp"
            android:text="空格拆分"/>
        
    </LinearLayout>
    
    
</LinearLayout>

还有一个单独的列表项的布局single.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="wrap_content"
    android:orientation="horizontal" >
    
    <ImageView 
        android:id="@+id/img"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:scaleType="center"/>
    
    <TextView 
        android:id="@+id/tv"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="20sp"/>

</LinearLayout>

代码:

public class MainActivity extends Activity {

	ListView lv;
	EditText et;
	Button btn;
	BaseAdapter adapter;
	String[] ss = {};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		lv = (ListView)findViewById(R.id.lv);
		et = (EditText)findViewById(R.id.et);
		btn = (Button)findViewById(R.id.btn);
		
		adapter = new BaseAdapter() {
			
			@Override
			public View getView(int arg0, View arg1, ViewGroup arg2) {
				// TODO Auto-generated method stub
				View v = LayoutInflater.from(MainActivity.this).inflate(R.layout.single, null);
				ImageView img = (ImageView)v.findViewById(R.id.img);
				TextView tv = (TextView)v.findViewById(R.id.tv);
				
				img.setBackgroundResource(R.drawable.pic);
				tv.setText(ss[arg0]);
				
				return v;
			}
			
			@Override
			public long getItemId(int arg0) {
				// TODO Auto-generated method stub
				return arg0;
			}
			
			@Override
			public Object getItem(int arg0) {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return ss.length;
			}
		};
		
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				ss = et.getText().toString().split(" ");
				adapter.notifyDataSetChanged();
			}
		});
		
		lv.setAdapter(adapter);
		
	}

关于xml布局文件转换成view类型的方法,借鉴:

http://blog.csdn.net/u013424496/article/details/51580016

就酱。

猜你喜欢

转载自blog.csdn.net/qq_34215717/article/details/77323472