gpt4 book ai didi

android - 在每个卡片 View 中有一个微调器 - recyclerview 中的卡片 View

转载 作者:行者123 更新时间:2023-11-29 18:43:34 24 4
gpt4 key购买 nike

我正在学习本教程 https://www.simplifiedcoding.net/android-recyclerview-cardview-tutorial/但是我的要求是不同的。我不想像教程那样设置名称、描述、评级等值,而是希望在每个 Cardview 中都有一个微调器、编辑文本、文本框和复选框。 (当用户按下 FAB 按钮时,会添加另一个卡片 View ,其中还有一个微调器、文本框、复选框和编辑文本)

但问题是,微调器由 csv 文件中的项目填充,这就是我遇到麻烦的地方。我有一个没有卡片 View 和回收器 View 的先前程序文件,其中微调器填充有 csv 文件值,当您按下 FAB 时,微调器出现。但是,我无法将回收站 View 与此集成。

在我以前的程序文件中,我有一个 MyListAdapter.java。我相信这是微调器的适配器。

public class MyListAdapter extends ArrayAdapter<String> {
int groupid;
List<String> items;
Context context;
String path;

public MyListAdapter(Context context, int vg, int id, List<String> items) {
super(context, vg, id, (List<String>) items);
this.context = context;
groupid = vg;
this.items = items;

}

static class ViewHolder {
public TextView textid;
public TextView textname;

}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
{

View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(groupid, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.textid = (TextView) rowView.findViewById(R.id.txtid);
viewHolder.textname = (TextView) rowView.findViewById(R.id.txtname);
rowView.setTag(viewHolder);
}
// Fill data in the drop down.
ViewHolder holder = (ViewHolder) rowView.getTag();
String row = items.get(position);
//holder.textid.setText(row[0]); //prints aisle number, dont need

holder.textname.setText(row);



return rowView;
}

}

}

此外,在我的 mainactivity 中,我有这段代码可以读取 csv 文件。

  private class CSVFile {
InputStream inputStream;

public CSVFile(InputStream inputStream) {
this.inputStream = inputStream;
}

public List<String> read() {

List<String> resultList = new ArrayList<String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String line;
while ((line = reader.readLine()) != null) {
String[] row = line.split(",");
//TODO I edited this part so that you'd add the values in our new hash map variable
numberItemValues.put(row[1], row[0]);
resultList.add(row[1]);
}
} catch (IOException e) {
Log.e("Main", e.getMessage());
} finally {
try {
inputStream.close();
} catch (IOException e) {
Log.e("Main", e.getMessage());
}
}
return resultList;
}
}

但是教程需要两个类,Product.java 和 product adapter.java。 (如果你点击教程你会看到他们的代码)我很困惑如何将我上面的代码与这个教程的情况结合起来?

最佳答案

*-首先用你想要的项目创建你的 recyclerview 行布局 xml 文件

*-在您的主要 Activity 或 fragment 中加载 csv 文件并将它们传递给您的适配器,在您的适配器构造函数中声明一个参数

*-在您的 recuclerview 适配器类中,在 onCreateViewHolder 方法中膨胀该布局(就像示例一样)

*-在您的 RecyclerView.ViewHolder 构造函数中获取所有组件,如 Spinner 等,就像示例一样

TextView textViewTitle = itemView.findViewById(R.id.textViewTitle);
...
Spinner spinner = itemView.findViewById(R.id.spinner);

*-在您的 onBindViewHolder 方法中,用加载的 csv 文件填充微调器,与之前相同

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, spinnerArray);
spinner.setAdapter(adapter);//mContext should be passed from your activity to your adapter, so you should add it to your adapter constructor

关于android - 在每个卡片 View 中有一个微调器 - recyclerview 中的卡片 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52454019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com