Android学习之ListView显示XML数据

来源:互联网 发布:拒绝网络暴力议论文 编辑:程序博客网 时间:2024/05/22 11:39

ListView显示XML数据 很简单的一个demo,如果有什么其他的需求可以自行扩展

资源文件:

activity_main.xml文件

<RelativeLayout 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.android.adapter.activity.MainActivity" >
    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>
</RelativeLayout>

这里面是有一个listview

item.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="horizontal" >
    <ImageView
        android:id="@+id/imageView"
        android:background="#FF112233"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"/>
    <TextView
        android:id="@+id/textView"
        android:text="@string/action_settings"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>


其中StringListAdapter的Adapter继承了baseAdapter

StringListAdapter.java文件

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;
import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class StringListAdapter extends BaseAdapter{

List<String> lists=new ArrayList<String>();
Context context;
public StringListAdapter(Context context,List<String> lists){
this.context=context;
this.lists=lists;
}

@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {

return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=LayoutInflater.from(context).inflate(R.layout.item, null);
ImageView iv=(ImageView)view.findViewById(R.id.imageView);
TextView tv=(TextView)view.findViewById(R.id.textView);
tv.setText(position+","+lists.get(position));
return view;
}
}

MainActivity.java文件如下:

import java.util.Arrays;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnScrollListener{
ListView listView;
StringListAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        adapter=new StringListAdapter(MainActivity.this,Arrays.asList("123","234","345","456","567","678"));
        listView.setAdapter(adapter);
        listView.setOnScrollListener(this);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Toast.makeText(getApplicationContext(), "p:"+position+",id:"+id, 1).show();
Log.i("msg", "p:"+position+",id:"+id);
}
});
    }
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Toast.makeText(getApplicationContext(), "s:"+scrollState, 1).show();
Log.i("msg",  "s:"+scrollState);
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
Toast.makeText(getApplicationContext(), "f:"+firstVisibleItem+",v:"+visibleItemCount+",t"+totalItemCount, 1).show();
Log.i("msg", "f:"+firstVisibleItem+",v:"+visibleItemCount+",t"+totalItemCount);
}
}

这个只是一个简单的demo如果有其他的需要可以自行扩展

0 0
原创粉丝点击