2016-07-24 4 views
1

안녕 viewswitcher을 사용하여 TextViewEditText 사이를왔다 갔다합니다. 내보기가 textview에서 edittext으로 전환됩니다. 그러나 다시 전환하지 않습니다. 여기 내 xml입니다 : 스위칭을위한ViewSwitcher 이전보기로 돌아 가기

<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); 
     } 
    } 
+0

또한 ViewPager를 사용 수, 또한 간단한 View.Visible 및 View.Gone 구현 –

답변

0

를 사용하여 발생합니다. 아래 코드를 시도해보십시오.

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); 
    } 
} 
0

. 통역이 모두 문 경우 기본 후자로는 forment 하나의 값을 오버라이드 (override)됩니다 겪고 있기 때문에 간단하게 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); 
     } 
    } 
+0

당신이 정말로 원하는 경우 당신은 여전히 ​​어디에 문제가 거짓말을 찾으려고,보기 스위처를 사용할 수 달리 페이지 사이를 전환했다 . 대답을 보아라. –

관련 문제