你好,我正在尝试使用viewswitcher往返于TextView和EditText之间。我的视图从edittext切换到textview。但不会掉头。这是我的xml
<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/noteItemVS"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true">
<TextView
android:id="@+id/noteItemTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:text="textview"
android:textAlignment="center" />
<EditText
android:id="@+id/noteItemEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="edittext"
android:textAlignment="center" />
</ViewSwitcher>我的切换代码是:
protected void switchViews(NoteItem note) {
ViewSwitcher switcher = (ViewSwitcher) context.findViewById(R.id.noteItemVS);
View switchCheck = switcher.getCurrentView();
if (switchCheck instanceof EditText) {
EditText l = (EditText)switchCheck ;
String x = l.getText().toString();
Log.e("tree",x);
if (!x.isEmpty()) {
switcher.showPrevious();
TextView myTV = (TextView) switcher.findViewById(R.id.noteItemTextView);
myTV.setText(x);
}
}
; if (switchCheck instanceof TextView) {
TextView l = (TextView) switchCheck;
String x = l.getText().toString();
switcher.showNext();
EditText myEditText = (EditText) switcher.findViewById(R.id.noteItemEditText);
myEditText.setText(x);
}
}发布于 2016-07-24 17:26:22
这是因为解释器正在同时遍历if语句,而默认情况下,后者将覆盖forment语句的值。尝试下面的代码,它肯定会工作的。
protected void switchViews() {
ViewSwitcher switcher = (ViewSwitcher)findViewById(R.id.noteItemVS);
View switchCheck = switcher.getCurrentView();
if (switchCheck instanceof EditText) {
EditText l = (EditText)switchCheck;
String x = l.getText().toString();
Log.e("tree",x);
if (!x.isEmpty()) {
switcher.showPrevious();
TextView myTV = (TextView) switcher.findViewById(R.id.noteItemTextView);
myTV.setText(x);
}
}else{
TextView l = (TextView) switchCheck;
String x = l.getText().toString();
switcher.showNext();
EditText myEditText = (EditText) switcher.findViewById(R.id.noteItemEditText);
myEditText.setText(x);
}
}发布于 2016-07-24 15:04:24
通过摆脱视图开关,我能够解决这个问题。简单地使用View.Gone和View.Visibile
protected void switchViews(NoteItem note) {
if (context.findViewById(R.id.noteItemTextView).getVisibility()==View.GONE) {
EditText editText = (EditText) context.findViewById(R.id.noteItemEditText);
String x = editText.getText().toString();
editText.setVisibility(View.GONE);
TextView textView = (TextView) context.findViewById(R.id.noteItemTextView);
textView.setVisibility(View.VISIBLE);
} else {
TextView textView = (TextView) context.findViewById(R.id.noteItemTextView);
String x = textView.getText().toString();
textView.setVisibility(View.GONE);
EditText editText = (EditText) context.findViewById(R.id.noteItemEditText);
editText.setText(x);
editText.setVisibility(View.VISIBLE);
}
}https://stackoverflow.com/questions/38553307
复制相似问题