如果每个列表视图有多个文本视图,如何设置适配器?

2023-11-22

我有多个TextViewmy 中的每个列表项ListView。我学会了写一个正确的getView我相信的方法,但我不知道如何使用setAdapter调用该方法。

private static String[] project = {"proj1","proj2"};
private static String[] workRequests = {"requirement gathering", "design"};
private static String[] startDate = {"02/21/2012","07/15/2011"};
private static String[] status = {"WIP","DONE"};

ListView mListView;

public class MyDashboardActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mydashboard);

        final LayoutInflater mInflater = LayoutInflater.from(this);
        mListView = (ListView)findViewById(R.id.dashboardList);
        mListView.setAdapter(
                // How do I set the adapter?
                );
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        System.out.println("enters");
        if(convertView == null){
            convertView = LayoutInflater.from(this).inflate(R.layout.mydashboard,null);
        }

        ((TextView) convertView.findViewById(R.id.project)).setText(project[position]);
        ((TextView) convertView.findViewById(R.id.work_request)).setText(workRequests[position]);
        ((TextView) convertView.findViewById(R.id.start_date)).setText(startDate[position]);
        ((TextView) convertView.findViewById(R.id.status)).setText(status[position]);

        return convertView;
    }

这是 xml 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/home_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!-- Include Action Bar -->
    <include layout="@layout/actionbar_layout" />

    <ListView
        android:id="@+id/dashboardList"
        style="@style/LeftHeaderText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:background="@drawable/innerdashboard_bg"
        android:textColor="@color/textColor" >

        <TextView android:id="@+id/project" />

        <TextView android:id="@+id/work_request" />

        <TextView android:id="@+id/start_date" />

        <TextView android:id="@+id/status" />

    </ListView>

</LinearLayout>

我尝试了几种方法,但没有一个有效。有人可以建议在这种情况下如何设置适配器吗?谢谢!


您需要实现自己的适配器。我的方法是还定义一个“代表”视图的对象。

下面有一个非常简单的例子,有两个TextViews以满足您的需求。

代表视图的对象(ListView 中的一行):

public class CustomObject {

    private String prop1; 
    private String prop2;

    public CustomObject(String prop1, String prop2) {
        this.prop1 = prop1;
        this.prop2 = prop2;
    }

    public String getProp1() {
        return prop1;
    }

    public String getProp2() {
       return prop2;
    }
}

接下来是自定义适配器:

public class CustomAdapter extends BaseAdapter {

   private LayoutInflater inflater;
  private ArrayList<CustomObject> objects;

   private class ViewHolder {
      TextView textView1;
      TextView textView2;
   }

   public CustomAdapter(Context context, ArrayList<CustomObject> objects) {
      inflater = LayoutInflater.from(context);
      this.objects = objects;
   }

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

   public CustomObject getItem(int position) {
      return objects.get(position);
   }

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

   public View getView(int position, View convertView, ViewGroup parent) {
      ViewHolder holder = null;
      if(convertView == null) {
         holder = new ViewHolder();
         convertView = inflater.inflate(R.layout.your_view_layout, null);
         holder.textView1 = (TextView) convertView.findViewById(R.id.id_textView1);
        holder.textView2 = (TextView) convertView.findViewById(R.id.list_id_textView2);
         convertView.setTag(holder);
      } else {
         holder = (ViewHolder) convertView.getTag();
      }
      holder.textView1.setText(objects.get(position).getprop1());
      holder.textView2.setText(objects.get(position).getprop2());
      return convertView;
   }
}

现在您可以在活动中定义和设置适配器:

ArrayList<CustomObject> objects = new ArrayList<CustomObject>();
CustomAdapter customAdapter = new CustomAdapter(this, objects);
listView.setAdapter(customAdapter);

现在您只需在对象列表中管理您的 CustomObject。 不要忘记调用customAdapter.notifyDataSetChanged()当您想要在 ListView 上重新进行修改时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果每个列表视图有多个文本视图,如何设置适配器? 的相关文章

  • gradle更新后无法找到方法(无法编译项目)

    我尝试将项目中的 gradle 版本更新为 4 1 milestone 1 以下这些说明 https developer android com studio build gradle plugin 3 0 0 migration html
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 对于一个单元格,RecyclerView onBindViewHolder 调用次数过多

    我正在将 RecyclerView 与 GridLayoutManager 一起使用 对于网格中的每个项目 我需要调用 REST api 来检索数据 然后 从远程异步获取数据后 我使用 UIL 加载 显示图像 一切似乎都很好 但我发现 on
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • 我应该释放或重置 MediaPlayer 吗?

    我有自己的自定义适配器类 称为 WordAdapter 并且我正在使用媒体播放器 名为pronounce WordAdapter 类中的全局变量 我有不同的活动 其中每个列表项都有线性布局 名为linearLayout 我正在设置onCli
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • 有没有任何代码可以在android中设置壁纸而无需裁剪和缩放?

    我正在创建一个画廊应用程序 我的第一个应用程序 这是我的代码 Bitmap bmd BitmapFactory decodeStream is try getApplicationContext setWallpaper bmd catch

随机推荐

  • 检测类是否被定义为声明式或函数式 - 可能吗?

    这是一个以声明方式创建的简单类 class Person def say hello self print hello 这是一个类似的类 但它是通过手动调用元类来定义的 def say hello self print sayolala s
  • 如何在 WPF 中自动调整 GridViewColumn 数据大小并右对齐?

    我怎么能够 将 ID 列中的文本右对齐 使每列根据具有最长可见数据的单元格的文本长度自动调整大小 这是代码
  • != 运算符和文件流

    include
  • 使用 grunt 运行 Angular.js 时如何修复错误“请设置环境变量 CHROME_BIN”

    我正在尝试使用 AngularJS 进行单元测试 我已经安装了 Bower 和 grunt 所以我应该能够进行测试 但是 当我从终端 在我的例子中是 Git Bash 运行 grunt test 时 我收到错误 请设置环境变量 CHROME
  • .NET 垃圾收集器 - 它的线程优先级是什么?

    我发现了一些很棒的文章 Maoni 里克特 1 里氏 2 给出了关于 GC 的理论和实践的许多细节 但我找不到任何说明 GC 的线程优先级是如何设置的 我发现的最接近的是这个 它指出 Finalizer 线程 以高优先级与应用程序异步运行
  • 从 RecyclerView EditText 获取值?

    我对recyclerView感到震惊 这里的名称和余额字段来自两个不同的数组 我需要的是 这里每一行都有一个 EditText 字段 我需要访问每行上的每个 EditText 并从中获取值 并且总计显示在 Total textView 上
  • 在哪里可以找到适用于 32 位 Windows 的 JDK? [关闭]

    Closed 这个问题是无关 目前不接受答案 在我的一生中 我似乎找不到适用于 32 位 Windows 机器的 Java SE JDK 的工作版本 甲骨文把它放在哪里了 谢谢 内森 访问 Oracle 网站 您要查找的是 x86 而不是
  • 可观察的堆栈和队列

    我正在寻找一个INotifyCollectionChanged实施Stack and Queue 我可以自己动手 但我不想重新发明轮子 我遇到了同样的问题 想将我的解决方案分享给其他人 希望这对某人有帮助 public class Obse
  • 自动聚焦于 EditorFor

    我想在我的应用程序中自动聚焦于编辑器 但我似乎无法做到这一点 我已成功在文本框上使用自动对焦 但我想使用编辑器来保持应用程序的外观通用 任何对此问题的解决方案将不胜感激 谢谢 我的尝试 Html EditorFor model gt mod
  • 如何衡量休眠性能?

    如何衡量休眠状态下的性能 我想知道hibernate执行一个查询需要多少时间 JProfiler 7 1 有一个 JPA Hibernate 探针 http www ej technologies com products jprofile
  • 函数参数中的 PHP 标志是什么?

    我注意到 PHP 中的一些函数使用flags作为参数 是什么让它们独特而不是普通的字符串参数 我之所以这么问 是因为我想在自己的自定义函数上使用它们 但很好奇这样做的过程是什么 Edit 总结一下 什么时候最好创建带有标志的自定义函数以及什
  • 在 python 中将 OAuth2 与 gdata 上的服务帐户结合使用

    我想用data photos service PhotosService从 Picasa 推送和拉取照片 我从 Google 控制台获得了一个服务密钥文件 XXXXXXXX privatekey p12 现在正在尝试使用该密钥对 googl
  • 为什么将数组添加到 number 会返回字符串? [复制]

    这个问题在这里已经有答案了 var array 1 2 4 array 1 gives 1 2 41 谁能解释这种行为 谁能解释这种行为 这个答案试图解释这种行为从规格的角度来看 As per spec 在运行时评估期间 两个表达式 左和右
  • HMACSHA1.ComputeHash() 线程安全问题

    我问自己 在 ASP NET 页面的代码隐藏中使用包含 HMACSHA1 实例的静态 共享 变量是否会很危险 问题是 在同一 ASP NET 页面上处理多个同时请求时 所有 ASP NET 工作进程线程将使用相同的 HMACSHA1 实例
  • Mysql计数频率

    我检查过类似的问题 但它对我的精确问题没有帮助 所以 我的桌子是这样的 id age 1 30 2 36 3 30 4 52 5 52 6 30 7 36 etc 我需要计算年龄的频率 age freq 30 2 36 3 52 2 我怎样
  • 如何使用 Jacoco 和多个模块在 Jenkins 中实现代码覆盖率?

    我的代码结构如下 events消息其他代码功能测试 在 jacoco 的构建脚本中 首先它必须复制所有类并使用该类目录来运行该工具 您能否在此处描述目标目录的步骤 我的意思是如何提及运行代码覆盖率的目录 构建后 每个文件夹都有自己的目标文件
  • 从 NSArray 获取 NSIndexSet

    NSArray 有一些有用的方法来查找指定索引的对象 To find objects by indexes id objectAtIndex NSUInteger index NSArray objectsAtIndexes NSIndex
  • UITextInputMode.activeInputModes() 在 Swift 2 中崩溃

    我想在 Swift 2 中获得 UITextInputMode 但是UITextInputMode activeInputModes 崩溃 let x UITextInputMode activeInputModes crash here
  • OpenERP fields.function() 解释[重复]

    这个问题在这里已经有答案了 我从 stock py 文件和行号 163 中获取了此代码 complete name fields function complete name type char size 256 string Locati
  • 如果每个列表视图有多个文本视图,如何设置适配器?

    我有多个TextViewmy 中的每个列表项ListView 我学会了写一个正确的getView我相信的方法 但我不知道如何使用setAdapter调用该方法 private static String project proj1 proj