2016-07-24 11 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を使用でき、それはまた、あなたが本当にしたい場合は、あなたはまだだけの問題では、どこにあるかを見つけるためにしようと、ビュースイッチャーを使用することができます –

答えて

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 1の値をオーバーライドしている通過しているので、単純に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

シンプルView.Visibleとは異なり、ページやView.Gone実装の間で遷移しています。答えを見る –

関連する問題