在ViewSwitcher中获取选定View的值

时间:2018-08-08 07:02:03

标签: android list viewswitcher

我正在使用/usr/local/bin/curl --version在两个视图之间切换(应该使用它)。

这是ViewSwitcher代码:

ViewSwitcher

事实是,我试图将ViewSwitcher放入列表中,以便稍后获取值。

(就像我以前仅使用EditText时一样),但是它实际上不起作用,因为我无法获取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中当前选择的视图的值,以便可以将其添加到列表中以供以后使用吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

要从视图中获取价值,请投射视图并从该视图中获取文本。.

EditText temp = (EditText) viewSwitcher.getCurrentView();
String s = temp.getText().toString();

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

View v = viewSwitcher.getCurrentView();
if (v instanceof EditText) {
     //code...
} else if (v instanceof Spinner) {
     //code...
}