需要Android Custom-List上的教程

时间:2011-05-12 12:50:01

标签: android list custom-lists

前几天我在浏览Android中的某个应用 我发现了一个惊人的清单。

Custom-List

我发现自定义ListView有趣。 当我们点击文本时,它会显示一些Activity,当我们点击右边的箭头时,它会显示一个对话框。

我想学习这个。任何人都可以阅读一些解释此自定义列表的教程。请朋友们。指导我..非常感谢

1 个答案:

答案 0 :(得分:4)

下面是自定义ListView示例

首先创建test.Java文件是代码

package com.test;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;

public class test extends Activity {
    /** Called when the activity is first created. */
    ArrayList<String> arrayString = new ArrayList<String>();
    test_adapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        arrayString.add("TextView1");
        arrayString.add("TextView2");
        arrayString.add("TextView3");
        arrayString.add("TextView4");
        arrayString.add("TextView5");
        ListView list = (ListView) findViewById(R.id.LIST);
        adapter = new test_adapter(this, arrayString);
        list.setAdapter(adapter);
    }

}

也在类文件test_adapter.java下面使用

package com.test;

import java.util.ArrayList;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class test_adapter extends BaseAdapter {
    private Activity activity;
    ArrayList<String> data = new ArrayList<String>();
    private static LayoutInflater inflater = null;

    public test_adapter(Activity a, ArrayList<String> d) {
        activity = a;
        data = d;
        inflater = LayoutInflater.from(activity);
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public static class ViewHolder {
        public TextView txt1;
        public Button btn1;
        public RelativeLayout rel1;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        final ViewHolder holder;
        if (convertView == null) {
            vi = inflater.inflate(R.layout.listview, null);
            holder = new ViewHolder();
            holder.txt1 = (TextView) vi.findViewById(R.id.txt1);
            holder.btn1 = (Button) vi.findViewById(R.id.btn1);
            holder.rel1 = (RelativeLayout) vi.findViewById(R.id.rel1);
            vi.setTag(holder);
        } else
            holder = (ViewHolder) vi.getTag();

        holder.txt1.setText(data.get(position));
        holder.rel1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast
                        .makeText(activity, "Click On TextView",
                                Toast.LENGTH_LONG).show();
            }
        });
        holder.btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(activity, "Click On Button", Toast.LENGTH_LONG)
                        .show();
            }
        });
        return vi;
    }

}

在布局文件main.xml

下面使用
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
        <ListView android:layout_width="fill_parent" android:id="@+id/LIST"
    android:layout_height="fill_parent" />
    </LinearLayout>

使用listview.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
    <RelativeLayout android:id="@+id/rel1" android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:id="@+id/txt1"
        android:text="Test Description"></TextView>
</RelativeLayout>
    <RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content">
        <Button android:id="@+id/btn1" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="ClickHere"
        android:layout_alignParentRight="true"></Button>
            </RelativeLayout>
    </LinearLayout>

使用高于代码,您将获得显示吐司信息,您可以根据您的要求进行更改。