首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ViewSwitcher中获取选定视图的值

在ViewSwitcher中获取选定视图的值
EN

Stack Overflow用户
提问于 2018-08-08 07:02:02
回答 1查看 310关注 0票数 1

我使用一个ViewSwitcher在两个视图之间切换(就像它应该使用的那样)。

以下是ViewSwitcher代码:

代码语言:javascript
复制
final ViewSwitcher viewSwitcher = new ViewSwitcher(getApplicationContext());

                TextView t = new TextView(this);
                [...]
                t.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        viewSwitcher.showNext();
                    }
                });

                viewSwitcher.addView(t,
                        new TableRow.LayoutParams(
                                TableRow.LayoutParams.MATCH_PARENT,
                                TableRow.LayoutParams.MATCH_PARENT, 1f));

                final String key = (String)map.keySet().toArray()[n];

                if(key.contains("EditText"))
                {
                    EditText e = new EditText(this);
                    [...]
                    e.setOnLongClickListener(new View.OnLongClickListener() {
                        @Override
                        public boolean onLongClick(View view) {
                            viewSwitcher.showPrevious();
                            return true;
                        }
                    });

                    viewSwitcher.addView(e,
                            new TableRow.LayoutParams(
                                    TableRow.LayoutParams.MATCH_PARENT,
                                    TableRow.LayoutParams.MATCH_PARENT, 1f));
                }
                else if (key.contains("Spinner"))
                {
                            Spinner spin = new Spinner(getApplicationContext());
                            [...]
                            spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                                @Override
                                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                                    if(adapterView.getSelectedItemPosition() == 0)
                                        viewSwitcher.showPrevious();
                                }

                                @Override
                                public void onNothingSelected(AdapterView<?> adapterView) {

                                }
                            });

                            viewSwitcher.addView(spin,
                                    new TableRow.LayoutParams(
                                            TableRow.LayoutParams.MATCH_PARENT,
                                            TableRow.LayoutParams.MATCH_PARENT, 1f));
                }

事实上,我试图将ViewSwitcher放在一个列表中,以便稍后获得这些值。

(就像我以前只使用EditText时一样),但它并不真正起作用,因为我无法获得在ViewSwitcher视图中写入的内容的值。

下面是我的问题:,您知道如何获得当前在ViewSwitcher中选择的视图的值吗,这样我就可以将其添加到列表中,以便以后使用它?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 07:16:25

可以使用getCurrentView()方法获取当前显示的视图。

若要从视图中获取值,请转换视图并从该视图获取文本。喜欢,

代码语言:javascript
复制
EditText temp = (EditText) viewSwitcher.getCurrentView();
String s = temp.getText().toString();

您可以检查当前视图的类型,而不是获取所需的属性。

代码语言:javascript
复制
View v = viewSwitcher.getCurrentView();
if (v instanceof EditText) {
     //code...
} else if (v instanceof Spinner) {
     //code...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51740419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档