当前位置: 首页 > 面试题库 >

适用于ListView的Android自定义行项目

百里海超
2023-03-14
问题内容

我有一个ListView,其行中应具有以下布局:

HEADER
Text

HEADER应该是静态的,但Text每隔几秒钟就会更改一次。

我通过填充String[] array,将其传递给ArrayAdapter并在每次数据更改时进行设置来实现它:

data_array = populateString();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,  data_array);
listView.setAdapter(adapter);

我的问题是我不知道如何以上述格式显示数据。

提前致谢。


问题答案:

将此row.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="vertical" >

<TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Header"/>

<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text"/>


</LinearLayout>

使你的主要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="fill_parent"
    android:orientation="horizontal" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

</LinearLayout>

这是你的适配器

class yourAdapter extends BaseAdapter {

    Context context;
    String[] data;
    private static LayoutInflater inflater = null;

    public yourAdapter(Context context, String[] data) {
        // TODO Auto-generated constructor stub
        this.context = context;
        this.data = data;
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return data.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return data[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View vi = convertView;
        if (vi == null)
            vi = inflater.inflate(R.layout.row, null);
        TextView text = (TextView) vi.findViewById(R.id.text);
        text.setText(data[position]);
        return vi;
    }
}

你的Java活动

public class StackActivity extends Activity {

    ListView listview;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listview = (ListView) findViewById(R.id.listview);
        listview.setAdapter(new yourAdapter(this, new String[] { "data1",
                "data2" }));
    }
}


 类似资料:
  • 问题内容: 我浏览了教程并进行了搜索,但仍然不明白该怎么做, 当扩展在我的android应用程序中创建自定义listView 时,此方法有效。因此,我无法完全按照需要编辑“自定义”列表视图。 我需要知道何时调用此方法以及参数的含义。 如果有人可以解释以下方法很好。谢谢 问题答案: getView() :如规范中所述,getView方法将数据显示在指定位置。因此,当您设置适配器并滚动时,将调用lis

  • 我尝试按照幻灯片youtube 6部分教程创建一个带有自定义行的列表视图。在他的教程中,他使用了1个图像和2个文本视图,我需要3个图像和3个文本视图,当我运行应用程序时,它在尝试加载列表视图时崩溃。 -------------家庭单行.xml----------------------- - Homelistview.xml - Homeactivitylistview.java 04-22 15

  • 问题内容: 首先让我解释一下我的目标。我试图使改变的属性。一个构造函数有两个领域:和。我想设置动画,使其在屏幕上显示为不断缩小的圆圈。 您可以通过想象PacMan来描绘此动画。想象一下他的嘴巴是闭合的。这种动画效果类似于他越来越张开上颚,直到不再有吃豆人为止。 现在…我在实现此问题上有两个问题。首先,创建后,就没有内置的更改方法。这使我想到了第一个问题:是否有任何方法可以覆盖和实现某些方法?还是我

  • 代码如下: 这是适配器,我在这里为列表做了自己的设计(< code>R.layout.zalistu),它在仿真器中工作,但在设备上它给我一个错误(应用程序意外停止),如果我使用< code>simple_list_item_1,那么它在仿真器和我的设备上都可以正常工作。 这里是R:layout.zalistu: 日志猫: 我设备上的Android版本是2.3.7,模拟器上的版本是4.0.4(AP

  • 问题内容: 所以我有一个自定义ListView对象。列表项具有两个彼此叠放的textview,以及一个水平进度条,在我实际执行某项操作之前,我一直希望保持水平状态。最右边是一个复选框,仅在用户需要将更新下载到他们的数据库时才显示。通过将可见性设置为Visibility.GONE禁用复选框时,我可以单击列表项。当该复选框可见时,我无法单击列表中除复选框以外的任何内容。我已经进行了一些搜索,但没有找到

  • 问题内容: 我真的很想把头发拔出来。一些背景。我有一个项目列表,所有项目旁边都有复选框。取消选择复选框后,将出现一个按钮,您可以从列表中删除该项目。乍一看似乎是倒退,但我们只希望“选定”的项目有资格进行进一步处理,等等。这是我的布局: 我无法使这3个物品在行中垂直居中以挽救生命。,,,没有它的工作原理。我敢肯定,我的问题是要在某个地方翻转一下,但我确实对此持怀疑态度。 编辑:我知道textview