android - 为 ListView 的每一行添加一个按钮和一个 TextView

标签 android listview button android-listview textview

我目前正在开发一个非常基础的 android 应用程序,遇到了一个我无法独自解决的障碍。

在我的应用程序中,我想要一个带有 ListView 的开始屏幕。在这个 ListView 的每一行中应该有一个 Button 和一个 TextView。我想要大约 5 行。当您单击每个按钮时,您应该能够进入不同的 Activity 。我怎么做?我阅读了一些有关适配器的内容,但我仍然不确定如何构建它。

这是我的 TextView 和 Button 的 xml 代码:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:id="@+id/rl01">
    <TextView
        android:layout_width= "wrap_content"
        android:layout_height="50dp"
        android:id="@+id/text01"
        android:text="hello"
        android:textSize="24dp"
        android:textColor="@color/abc_search_url_text_normal"
        android:paddingRight="@dimen/activity_horizontal_margin"

        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_toRightOf="@id/text01"
        android:text="Press Me!"
        />
</RelativeLayout>

最佳答案

您发布的 xml 布局将用作每个 ListView 项目。

第 1 步: 创建一个扩展 BaseAdapter 的类;

public class CustomAdapter extends BaseAdapter
{
    Context con;
    String[] data;
    public  CustomAdapter (Context context, String[] data)
    {
        this.con = context;

        this.data = data;

    }
    @Override
    public int getCount() {
        return data.length;
    }

    @Override
    public Object getItem(int position) {
        return data[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }
//this method will be called for every item of your listview
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView= inflater.inflate(R.layout.customview, parent, false);
        TextView text = (TextView) view.findViewById(your text view id); //recognize your view like this
      text.setText(data[position]);
        return convertView;
 }

}

第 2 步: 在您的 Activity 中,识别您的 ListView :

yourListViewReference = (ListView) findViewById(R.id.your_list_view_id);

并初始化字符串数组:

String[] data = {"item 1", "item2", "item3"}; //how many items you want

然后创建您创建的自定义适配器的实例,并将其设置为 ListView :

CustomAdapter ad = new CustomAdapter(this, data);
yourListViewReference.setAdapter(ad);

抱歉我的英语不好。我实际上正在努力。

关于android - 为 ListView 的每一行添加一个按钮和一个 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268098/

相关文章:

android - 如何在横向模式下处理 float 菜单操作

listview - 从 Listview Control 复选框中获取通知代码

java - 按下后退按钮时保存

android - 来自 Android 的视频叠加

Android ListView 滚动后只显示项目

android - Android 是否会为旧操作系统版本启用振动幅度控制?

java - ArrayList 的 ArrayList

android - 使用搜索 View 过滤自定义列表项

单击按钮时 JavaScript 更改类的颜色

android - 更改按钮文本和操作 - android 开发