【问题标题】:How to set in a ListView text using List如何使用 List 在 ListView 文本中设置
【发布时间】:2014-11-02 05:28:00
【问题描述】:

我开始从事 android 开发,我真的很想学习。实际上我正在为一个农场的管理制作一个安卓应用程序。我需要创建一个 listView 来显示管理员购买的内容。所以,我试图为此设置一个 ListView。我遵循 vogella 的教程 (http://www.vogella.com/tutorials/AndroidListView/article.html)。因此,我创建了名为“NewListViewAdapter 的类”,还创建了名为“newlistviewadapter”的 xml 文件,并在我的 ListFragment 中调用。

我已经知道如何处理列表的问题,我创建了一个 Compras 对象列表,现在我尝试将其设置为 xml 文件中的每个文本视图,但我不知道这是正确的方法。谁能告诉我我是怎么做到的?

我正在关注 vogella 的教程,但他们使用数组,我正在尝试使用列表。

关注我的文件:

NewListViewAdapter

package com.example.projectcandy.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.example.projectcandy.R;

import java.util.List;


public class NewListViewAdapter extends ArrayAdapter<List> {
private TextView tv1;
private TextView tv2;
private TextView tv3;
private TextView tv4;
private TextView tv5;
private TextView tv6;

private final Context context;
private final List values;

public NewListViewAdapter(Context context, List values) {
    super(context, R.layout.newlistview, values);
    this.context = context;
    this.values = values;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.newlistview, parent, false);
    tv1 = (TextView) rowView.findViewById(R.id.textView9);
    tv2 = (TextView) rowView.findViewById(R.id.textView10);
    tv3 = (TextView) rowView.findViewById(R.id.textView11);
    tv4 = (TextView) rowView.findViewById(R.id.textView12);
    tv5 = (TextView) rowView.findViewById(R.id.textView13);

    tv1.setText((Integer) values.get(1));
    tv2.setText((Integer) values.get(1));
    tv3.setText((Integer) values.get(1));
    tv4.setText((Integer) values.get(1));
    tv5.setText((Integer) values.get(1));
    tv6.setText((Integer) values.get(1));





    return rowView;

}

}

XML 文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:paddingRight="5dp"
    android:layout_weight="1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/vendedor"
        android:id="@+id/textView" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/fechadecompra"
        android:id="@+id/textView3" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/peso_compra"
        android:id="@+id/textView4" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/Cantidad"
        android:id="@+id/textView5" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/ubicacion_potrero"
        android:id="@+id/textView6" />
</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:paddingLeft="5dp"
    android:layout_weight="1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="TEXTO MAS LAAAAAAAAARGO"
        android:id="@+id/textView9" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView10" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView11" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView12" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView13" />
</LinearLayout>

</LinearLayout>

在我的列表片段中实现

List <Compra> compras = db.getAllCompras(id_user);


    NewListViewAdapter adapter = new NewListViewAdapter(getActivity(), compras);
    setListAdapter(adapter);
    getListView();
    registerForContextMenu(getListView());

我的计划是在用户触摸 listView 的一个元素时显示一个 listView,用户可以选择是修改还是删除它,为此我需要“compra”id。所以这就是为什么我显示所有信息并需要带上身份证。用于修改或删除。

谢谢。

【问题讨论】:

    标签: android xml listview android-listview


    【解决方案1】:

    要在 android 中处理列表项单击,您可以使用 OnListItemClick 方法。 处理修改和/或删除选项的一种情况是弹出带有选项的警报对话框之类的东西。您还可以决定将用户带到另一个活动并在那里处理该对象的修改和删除。无论哪种方式最适合您。

    【讨论】:

    • 好的,谢谢。但是一个对象的使用列表呢?我想从该列表的对象中获取 id
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多