如何使用Spinner从列表中获取多个数据?

发布于 2025-02-10 20:44:04 字数 2526 浏览 1 评论 0原文

我希望从我的旋转器那里获得更多必需的数据,但无法获得。这是我的列表[“ id”:“ 1”,“ title”:“ test 1”,“ tableId”:“ my_value”]和我的旋转器显示table>表给用户,我想要my_value从列表中。但是我想向用户展示。我该如何实现?

下拉上正确显示,但项目不是选择,并且无法获得my_value data。<<<<<。 /strong>

这样:

这是我的模型类

public class myModel {
    String id;
    String title;
    String tableid;

    public String getTitle() {
        return title;
    }

    public String getTableId() {
        return tableid;
    }

    public String getId() {
        return id;
    }

    @NonNull
    @Override
    public String toString() {
        return getTitle();
    }
}

这是旋转器xml

<Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    android:layout_height="35dp"
                    android:layout_weight="1" />

这是旋转器代码

ArrayList<myModel> dropList = new ArrayList<>();
//DropList data is like this = ["id":"1","title":"test 1","tableid":"my_value"]
            ArrayAdapter<myModel> adapter = new ArrayAdapter<>(this, R.layout.my_spinner_textview, dropList); // my_spinner_textview is same as simple_spinner_item_view
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinCategory.setAdapter(adapter);
            spinCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                                           int position, long id) {
                   
                    myModel modelcls = dropList.get(position);
                    String val= modelcls.getTableId();
                    String val2= modelcls.getTitle();
                    Toast.makeText(ShayariEditor.this, "value1: "+val, Toast.LENGTH_SHORT).show();
                    Toast.makeText(ShayariEditor.this, "value2: "+val2, Toast.LENGTH_SHORT).show();
                    adapter.notifyDataSetChanged();
                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
            });

I want more required data from my Spinner but unable to get. This is my list ["id":"1","title":"test 1","tableid":"my_value"] and my Spinner showing dropdown of table to users and I want my_value from list. But I want to show users to table. How can I achieve this?

table is properly showing on dropdown but item is not selecting and unable to get my_value data.

Like this:
enter image description here

This is my Model Class

public class myModel {
    String id;
    String title;
    String tableid;

    public String getTitle() {
        return title;
    }

    public String getTableId() {
        return tableid;
    }

    public String getId() {
        return id;
    }

    @NonNull
    @Override
    public String toString() {
        return getTitle();
    }
}

This is spinner XML

<Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    android:layout_height="35dp"
                    android:layout_weight="1" />

This is Spinner Code

ArrayList<myModel> dropList = new ArrayList<>();
//DropList data is like this = ["id":"1","title":"test 1","tableid":"my_value"]
            ArrayAdapter<myModel> adapter = new ArrayAdapter<>(this, R.layout.my_spinner_textview, dropList); // my_spinner_textview is same as simple_spinner_item_view
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinCategory.setAdapter(adapter);
            spinCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                                           int position, long id) {
                   
                    myModel modelcls = dropList.get(position);
                    String val= modelcls.getTableId();
                    String val2= modelcls.getTitle();
                    Toast.makeText(ShayariEditor.this, "value1: "+val, Toast.LENGTH_SHORT).show();
                    Toast.makeText(ShayariEditor.this, "value2: "+val2, Toast.LENGTH_SHORT).show();
                    adapter.notifyDataSetChanged();
                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
            });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

因为看清所以看轻 2025-02-17 20:44:04

我找到了解决方案。
只需创建一个带有不同数据的自定义数组,就可以使用OnItemselected的位置轻松访问它们。

public void onItemSelected(AdapterView<?> arg0, View arg1,
                                           int position, long id) {

它的工作原理很好。您将使用相同的旋转器获得2个数据。

I found the solution.
Just create a custom Array with different data and can easily access them using position of onItemSelected.

public void onItemSelected(AdapterView<?> arg0, View arg1,
                                           int position, long id) {

It works very fine. You'll achieve 2 data with the same spinner.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文