gpt4 book ai didi

android - 从 RecyclerView 中检索每行的多个编辑文本

转载 作者:行者123 更新时间:2023-11-30 01:51:08 26 4
gpt4 key购买 nike

我已通读 this linkthis one但他们谈到从 recyclerview 中每行获取一个编辑文本,但在我的例子中,我想在 recyclerview 中每行添加 3 个编辑文本,然后在单击 recyclerview 外部的按钮时从这些编辑文本中提取所有字符串。

recyclerview 的布局是这样的。每个都是一个编辑文本,用户将在其中输入商品的名称、编号和价格。

________________________________________________________-
|__Name__________|___Number________|____Price___________|+|
________________________________________________________-
|__Name__________|___Number________|____Price___________|+|
________________________________________________________-
|__Name__________|___Number________|____Price___________|+|

有人可以帮我解决这个问题吗

最佳答案

在您的 RecyclerView.Adapter 子类中,我们称它为 customRAdapter,在覆盖的 OnCreateViewHolder 方法中扩充布局,该方法在垂直方向的 LinearLayout 中包含三个 EditText。接下来,向您的 customRAdapter 类添加一个公共(public)方法,该方法返回一个字符串数组,其中包含您的三个 EditText 中的文本。从 RecyclerView 外部单击按钮时,引用返回字符串数组的 customRAdapter 实例的方法,您的问题就解决了。

要在覆盖的 OnCreateViewHolder 方法 (LAYOUT_NAME.axml) 中扩充您的 XML 布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/holo_blue_dark"
android:id="@+id/main_framelayout">

<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/EditText1"
/>
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/EditText2"
/>
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/EditText3"
/>
</LinearLayout>

重写的 OnCreateViewHolder 方法本身:

    public override RecyclerView.ViewHolder OnCreateViewHolder (ViewGroup parent, int viewType)
{
layoutinflater = LayoutInflater.From (context);
view = layoutinflater.Inflate (Resource.Layout.LAYOUT_NAME, parent, false);
return new customRecyclerHolder (view);
}

在您的 RecyclerView.ViewHolder 子类中有以下内容:

        public EditText et1 {
get;
private set;
}
public EditText et2 {
get;
private set;
}
public EditText et3 {
get;
private set;
}
public customRecyclerHolder(View view):base(view){

et1 = view.FindViewById<EditText>(Resource.Id.EditText1);
et2 = view.FindViewById<EditText>(Resource.Id.EditText2);
et3 = view.FindViewById<EditText>(Resource.Id.EditText3);
}

获取字符串数组的示例(在您的 customRAdapter 类中):

customViewHolder holder;
public override void OnBindViewHolder (RecyclerView.ViewHolder holder, int position)
{
....
this.holder = holder as customViewHolder; //get the reference to the current viewholder
}

//call this method from your button code to retrieve the strings.
public string[] getEditTextStrings(){
return new string[]{ holder.et1.Text, holder.et2.Text, holder.et3.Text };
}

仅供引用,这一切都在 C# 中。 Java 中的原理和几乎所有代码都差不多。

关于android - 从 RecyclerView 中检索每行的多个编辑文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044192/

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