使用自定义视图填充 ListFragments?

2024-04-23

以前,我可以将布局扩展为 ListView 的自定义视图层次结构。但我不知道如何对 listFragment 执行相同的操作。假设我有一个 item_list 布局,其中有一个 ImageView 和 2 个文本视图。我想将其膨胀以在我的 ListFragment 中使用。但如何?

public class Tab1Fragment extends ListFragment {
private LayoutInflater mInflater;
private Vector<RowData> data;
RowData rd;

 static final String[] title = new String[] {
    "Classic Plank", "Side Plank", "Reversed Plank", "Swissball Plank", "One Arm One Leg", //5
    };

static final String[] description = new String[] {
    "Variation of Sushis from fresh vegetables and seafoods! Good for family occassions!",
    "Oyakodon is a Japanese Rice Bowl dish with Chicken, Eggs and various sorts of healthy and delicious Veggetables!",
    "Japanese assorted Pancake that is made from many different ingredients. The taste is so delicious!",
    "Japanese Dumplings made of Rice Flour. This is one of the healthiest sweets in Japan!",
    "Japanese assorted stews. Made from many different kind of veggetables. Popular in Winter!", //5
    };

private Integer[] imgid = {
 R.drawable.thumb_classic, R.drawable.thumb_side, R.drawable.thumb_reverse,      R.drawable.thumb_swissball, R.drawable.thumb_reachout, //5
};

 @Override
 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.easylist);
mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
data = new Vector<RowData>();
for(int i=0;i<title.length;i++){
    try {
        rd = new RowData(i,title[i],description[i]);
        } catch (ParseException e) {
            e.printStackTrace();
            }
    data.add(rd);
    }
CustomAdapter adapter = new CustomAdapter(this, R.layout.list_item_main, android.R.id.list, data);
   setListAdapter(adapter);
   getListView().setTextFilterEnabled(true);
}


private void setContentView(int main) {
// TODO Auto-generated method stub

}


private LayoutInflater getSystemService(String layoutInflaterService) {
// TODO Auto-generated method stub
return null;
}


public void onListItemClick(ListView listView, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putInt("Layout", position);

Intent newIntent = new Intent(this.getApplicationContext(), ContentViewer.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);
}
   private Context getApplicationContext() {
// TODO Auto-generated method stub
return null;
}
private class RowData {
   protected int mId;
   protected String mTitle;
   protected String mDescription;
   RowData(int id, String title, String description){
   mId=id;
   mTitle = title;
   mDescription = description;
}
   @Override
   public String toString() {
           return mId+" "+mTitle+" "+mDescription;
   }
}
  private class CustomAdapter extends ArrayAdapter<RowData> {

  public CustomAdapter(Context context, int resource, int textViewResourceId, List<RowData> objects) {               

 super(context, resource, textViewResourceId, objects);
}
@Override
   public View getView(int position, View convertView, ViewGroup parent) {   

   ViewHolder holder = null;
   TextView title = null;
   TextView description = null;
   ImageView thumbnail = null;
   RowData rowData = getItem(position);
   if(null == convertView){
        convertView = mInflater.inflate(R.layout.list_item_main, null);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
 }
         holder = (ViewHolder) convertView.getTag();
         title = holder.gettitle();
         title.setText(rowData.mTitle);

         description = holder.getdescription();
         description.setText(rowData.mDescription);

         thumbnail = holder.getImage();
         thumbnail.setImageResource(imgid[rowData.mId]);
         return convertView;
}
        private class ViewHolder {
        private View mRow;
        private TextView title = null;
        private TextView description = null;
        private ImageView thumbnail = null; 

        public ViewHolder(View row) {
        mRow = row;
 }
    public TextView gettitle() {
         if(null == title){
             title = (TextView) mRow.findViewById(R.id.title);
            }
        return title;
     }     

     public TextView getdescription() {
         if(null == description){
              description = (TextView) mRow.findViewById(R.id.description);
                }
       return description;
     }

    public ImageView getImage() {
         if(null == thumbnail){
              thumbnail = (ImageView) mRow.findViewById(R.id.thumbnail);
                                  }
            return thumbnail;
    }
 }            
}
}

我无法确定这是否是我遇到此问题时解决问题的原因,但我认为您没有正确遵循片段生命周期(参见here http://developer.android.com/guide/components/fragments.html).

在谈论一项活动时,您必须首先创建您的ListView在拨打电话之前setAdapter()。您正在实施onCreate()之前被调用过onCreateView().

所以看起来你本质上是在尝试设置你的适配器ListView在你创建它之前。

作为一种习惯,最好始终以自己的观点来完成所有工作onCreateView()片段生命周期的一部分。

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

使用自定义视图填充 ListFragments? 的相关文章

  • 当通过音频采样的数据数量超过 AudioRecord 构造函数中设置的“bufferSizeInBytes”时会发生什么?

    public AudioRecord int audioSource int sampleRateInHz int channelConfig int audioFormat int bufferSizeInBytes 这是公共构造函数Au
  • Android TextToSpeech 行为不规则

    更新 经过一番挖掘 我设法在 Logcat 中找到了一些信息 见底部 编辑2 我现在从头开始创建了一个新活动来减少这个问题 它仍然无法正常工作 这是代码 public class MainActivity extends AppCompat
  • 调用“DisplayManagerGlobal.getDisplayInfo()”会导致应用程序中的应用程序无响应 (ANR)

    显然 应用程序中的某些内容从不同线程 主线程和绑定器线程 调用该方法 这会导致内部 ANR 它经常发生 我不知道它发生在哪里 因为我无法在模拟器或我拥有的测试设备上重现它 该应用程序的作用 它是一个应用程序储物柜应用程序 它在应用程序覆盖层
  • 如何查找 Android 上剩余的可用存储空间(磁盘空间)? [复制]

    这个问题在这里已经有答案了 我试图找出运行我的应用程序的 Android 手机上的可用磁盘空间 有没有办法以编程方式执行此操作 Thanks 示例 获取人类可读的大小 如 1 Gb 字符串内存 bytesToHuman totalMemor
  • 如何在 ubuntu 14.04 中保持 Android 模拟器始终位于最前面

    如何在 ubuntu 14 04 中保持 Android 模拟器始终位于最前面 我使用的是 Android Studio 2 1 1 和模拟器版本 25 1 6 在将 Android SDK Tools 更新到 25 1 6 之前它可以正常
  • 将实时 Android 网络摄像头视频上传到 RTP/RTSP 服务器

    我已经做了适当的研究 但仍然缺乏关于我想要实现的目标的信息 因此 我想编写一个应用程序 用户可以在其中录制视频并立即 实时 将视频上传到 RTP RTSP 服务器 服务器端不会有问题 我不清楚的是如何在手机端实现这一点 到目前为止 我的研究
  • 仅在 MarshMallow(6.0 和 6.0.1)上使用 MapActivity 进行 MapView 会使应用程序崩溃

    我正在使用 MapActivity 扩展我的活动 以动态实现 MapView 其中包含显示 mapView 的片段 public abstract class BaseHomeActivity extends MapActivity 我已经
  • Android 自定义对话框中的图标

    有没有一种方法可以在不使用 AlertDialog 方法的情况下在自定义对话框上设置图标 对话框有标题 但缺少漂亮的分隔线和设置图标的功能 但肯定有一种方法可以在不使用 AlertDialog 的情况下获得两者 您可以使用以下代码添加图标
  • 是否可以在 Flutter 中创建自定义快速设置图块?

    我搜索了 Flutter 文档并用谷歌搜索了这个 但结果为零 我正在开发我的第一个 Android Flutter 应用程序 我想为其创建一个自定义的快速设置图块 我的目标是牛轧糖及以上 我知道这在 Java 和 Kotlin 中是可能的
  • 使用 GestureDetector 时出现 NullPointerException

    下面是在发生不同事件时加载两个不同图像的帧动画的代码 第一个事件是在活动开始时 其他的是onTouch 我在哪里利用GestureDetector为了onDown and onScroll 问题是我得到NullPointerExceptio
  • 动态元素 ID 到 setId(int) - Android

    我看到了语法定义setId int and findViewByID int 但我们如何使用findViewById R id row1 我尝试使用这个 Object1 setId Integer parseInt repeat 它没有显示
  • Android NDK __android_log_print函数和LogCat

    我有一个类似的功能 android log print ANDROID LOG INFO HelloNDK 在我的 C 代码上 我在 LogCat 上找不到该输出 我需要设置什么样的过滤器 按日志标签 按日志消息 按应用程序名称 按日志级别
  • Android 应用安装验证

    我有一个应用程序 其中列出了用户可以安装并赚取积分的一些活动 应用程序列表 现在我主要关心的是安全性 一些用户从模拟器或VPN或其他东西安装应用程序 这样我的客户就无法在Google Play商店中安装应用程序 我见过一些应用程序 如现金海
  • 应用程序被终止时无法处理 FCM 消息

    我一直在阅读各种教程 其他 SO 线程以及官方 Android 开发人员和 Firebase 文档 但无济于事 我已经尝试了几乎所有的方法 但我已经耗尽了精力和时间 因为我正在修复以前可以工作但现在不再工作的通知系统 我正在使用 Azure
  • 选择返回动态列

    我有两个表 标准和服务产品 一个标准可以有多个服务产品 每个标准可以有不同数量的与其关联的服务产品 我需要做的是编写一个视图 该视图将返回一些常见数据 然后在一行上列出服务产品 例如 Standard Id Description SO 1
  • 在 Android 中的计时器内运行异步任务

    我正在开发一个基本的聊天类型应用程序 目前我正在运行代码 如下所示 class GetMsgs extends AsyncTask
  • 蓝牙连接;无法正确发送字符串

    当我需要将字符串从服务器蓝牙套接字发送到客户端蓝牙套接字时 我的程序遇到了麻烦 只要我一次只发送一个字符串 例如聊天 一切都可以正常工作 但是如果我需要在短时间内编写更多字符串 以交换信息 则字符串将不会与客户端代码分离 例如 如果我发送
  • 如何将视频转换为base64数据

    我有一个应用程序 可以从相机或图库中获取视频并将其转换为 Base64 数据 并将该数据发送到服务器 但问题是每当我转换 Base64 数据时 videodata 变量中的数据都不是正确的 为此我使用了下面的代码 FileInputStre
  • GreenDao交易

    我在用着GreenDao存储大量数据 来自休息服务 我的很多实体都与关系相关 一切都很顺利 但明天我必须实施坚如磐石的工作流程 当我加载数据时我必须检查是否发生错误 如果是这样 我必须确保没有存储任何内容在 SQLite 数据库中 通常我会
  • Activity 在 Android 上创建两次

    首先 我是 Android 开发新手 所以请耐心等待 我将从用户界面开始 我有一个按钮 一旦您点击它 就会启动一个活动以获取结果 public class GUIActivity extends Activity Override publ

随机推荐

  • python:将 Firefox 与 selenium 一起使用时禁用下载弹出窗口

    我有一个使用 selenium 和 firefox 来自动执行下载操作的脚本 问题是每当我运行脚本时 即使我在 Firefox 首选项中设置了下载路径 我总是会从 Firefox 中弹出 不断询问我想要执行什么类型的操作 我检查了文件和文件
  • 用多态性替换条件式

    我试图通过一个例子来理解这种干净的代码实践 考虑具有折扣开关盒的类产品 我正在尝试用多态性替换 switch 语句 代码之前 class Product String priceCode int discount Product Strin
  • 数据集是否应该在企业级 Web 应用程序中使用?

    因此 我之前的一个项目中有一位架构师反对数据集 他讨厌它们 并说它们在网络应用程序中没有地位 特别是在拥有大量流量的网络应用程序中 我注意到在我接管的许多代码实例中数据集的使用相当频繁 他们真的那么糟糕 性能杀手吗 我是否应该考虑删除大量使
  • 如何更改 apache Spark Worker 每个节点的内存

    我正在配置 Apache Spark 集群 当我运行具有 1 个主服务器和 3 个从服务器的集群时 我在主监视器页面上看到以下内容 Memory 2 0 GB 512 0 MB Used 2 0 GB 512 0 MB Used 6 0 G
  • 动画图像的饱和度

    是否可以随着时间的推移对图像 例如 png 的饱和度进行动画处理 例如从灰度到全彩 另外如果我可以使用插值器 我已经看到了 EffectFactory 和 ColorMatrix 类 但我无法将它们与动画 过渡结合起来 例如 应用灰度饱和度
  • 仅复制和粘贴可见单元格

    我需要复制一列可见单元格并粘贴到下一列 我找不到有效的宏 我尝试了一下 但它只复制了一些数字 这是代码 Sub TryMe Sheet1 Range A1 A100 SpecialCells xlCellTypeVisible Copy D
  • 何时在模态视图控制器上设置父/呈现视图控制器?

    我正在展示一个模态视图控制器 在该模态视图控制器中viewDidLoad 我似乎找不到任何对父级 VC 的引用 parentViewController presentingViewController等等 如果尚未设置 我该如何获得对它的
  • 如何知道用户是否在设置中禁用或删除工作配置文件?

    我正在尝试查看工作配置文件更新时设备状态是否更新disabled or deleted在客户端通过设置 在客户端进行更改 禁用和删除后 statusenterprise devices get API 返回的仍然是ACTIVE 有没有办法知
  • 为什么我不能在 Java 8 lambda 表达式中引发异常? [复制]

    这个问题在这里已经有答案了 我升级到 Java 8 并尝试用新的 lamdba 表达式替换通过 Map 的简单迭代 该循环搜索空值 如果找到则抛出异常 旧的 Java 7 代码如下所示 for Map Entry
  • 将导航栏切换按钮向右对齐

    我正在尝试 Bootstrap 4 更具体地说是导航栏菜单 有没有办法让小导航栏切换按钮对齐到页面的右侧 而不是让它浮动到徽标旁边的左侧 这是我当前的代码 media min width 992px navbar nav li a line
  • GAE 中的拉取队列是否表现出一致的 FIFO 行为?

    App Engine 中的推送队列通常是先进先出队列 https developers google com appengine docs java taskqueue overview push The Rate of Task Exec
  • SQL 日期转换结果为“无效的数字格式模型参数”。

    我必须select一些数据来自Oracle 11g数据库 但我似乎不明白为什么以下select查询失败 SELECT INFO ID INFO DETAIL IMPORTANT FLG DELETE FLG CREATE TIME DISP
  • OpenCL:在内核中手动引发异常

    是否可以在 OpenCL 中手动引发异常 仅用于调试目的 我的代码中有一个非常奇怪的错误 当我计算两个双精度值并将它们相加时 主机报告 CL OUT OF RESOURCE 但是 如果我不添加这两个值 主机不会报告任何错误 OpenCL 不
  • 如何使用下面定义的类?

    class A public B b class B public A a 我不能在 A 类 B b 中写入 因为 B 类定义如下 有什么办法让它发挥作用吗 thanks 这不可能 您需要在其中一个类中使用指针或引用 class B for
  • Sql 异常:管道的另一端没有进程

    我无法从 C 代码访问我的 sql 服务器连接 我收到此错误 Sql 异常 管道的另一端没有进程 这是我的 app config 中的连接字符串
  • 如何在JavaFX中使用Node类的intersect()方法?

    JavaFX Node 类提供了两种相交方法 intersects Bounds localBounds and intersects double localX double localY double localWidth double
  • XSLT 和临时文档

    我正在尝试处理一个 xml 文件 该文件有几个不同的状态组 例如
  • 以角度实现 canActivate auth 防护

    我有一个带有此函数的服务 它会在令牌有效或无效时返回 true 或 false loggedIn return this http get http localhost 3000 users validateToken map res gt
  • C# 中的字符串加密和解密? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 C 中加密和解密字符串 编辑 2013 年 10 月 虽然我随着时间的推移编辑了这个答案以解决缺点 但请参阅jbtule 的回
  • 使用自定义视图填充 ListFragments?

    以前 我可以将布局扩展为 ListView 的自定义视图层次结构 但我不知道如何对 listFragment 执行相同的操作 假设我有一个 item list 布局 其中有一个 ImageView 和 2 个文本视图 我想将其膨胀以在我的