2010-11-18 14 views

Antwort

9

Vielleicht können Sie eine von jeder haben und ihre Sichtbarkeit umschalten. Wenn Sie auf die Schaltfläche klicken, übernehmen Sie den Text des sichtbaren, wenden Sie ihn auf den unsichtbaren Button an und vertauschen Sie deren Sichtbarkeit.

+3

@MarvinLabs: 1, war er schneller;) –

4

Sie können beide in Ihrem Layout haben und haben immer nur eine von ihnen angezeigt. Wenn sich der EditText-Wert ändert, aktualisieren Sie die ausgeblendete TextView, um sie synchron zu halten.

+2

@Rich: Ok, du bist schneller :-) –

0

Ich habe es nie versucht, aber Sie können (wahrscheinlich) EditText verwenden und den Hintergrund auf das von TextView setzen. Dann onfocus ändern Sie können einfach Hintergründe wechseln, basierend auf was Sie zu einem bestimmten Zeitpunkt sehen möchten. Ich werde versuchen, es zu implementieren und sehen, ob es wird

arbeiten
67

besten eine ViewSwitcher

... 
    <ViewSwitcher 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/my_switcher" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <TextView 
      android:id="@+id/clickable_text_view" 
      android:clickable="true" 
      android:onClick="TextViewClicked" 
      android:text="@string/some_value" /> 

     <EditText 
      android:id="@+id/hidden_edit_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/some_value" /> 
    </ViewSwitcher> 
... 

Dann nutzen Sie die Ansichten wechseln von

public void TextViewClicked() { 
    ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.my_switcher); 
    switcher.showNext(); //or switcher.showPrevious(); 
    TextView myTV = (TextView) switcher.findViewById(R.id.clickable_text_view); 
    myTV.setText("value"); 
} 
+0

Ich denke ehrlich aus alle von ihnen, diese Antwort war die beste. Es ist so viel einfacher. Ich bin neugierig. Wann sollte das verwendet werden? Ich lese das Dokument und es steht für Animationstypen. Aber in diesem Fall ist es sinnvoll, es zu verwenden. Gibt es einen Grund, es in diesem Fall nicht zu benutzen? – Andy

+0

View Switcher funktioniert gut und Sie haben die Möglichkeit, Animationen einfach hinzuzufügen. – Patrick

+1

Schön, aber fügen Sie zusätzlichen Platz in 'Switcher' Deklaration –

0

Was ich denke, am besten zu tatsächlich Framelayout-Konzept verwenden.

Derart, dass Original-Layout sieht aus wie

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
. 
. 
. 
</Linearlayout> 

Platz es in Framelayout wie diese.

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
. 
. 
. 
</Linearlayout> 

<!-- The Magic is here --> 
<View 

    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
/> 



</FrameLayout> 

Hier wird das LinearLayout alle Ihre EditText View enthalten. Denken Sie auch daran, den Hintergrund von EditText View auf null zu stellen.

gefällt das

<EditText 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:id="@+id/editInp" 
     android:hint="@string/hello_world" 
     android:background="@null" 
     android:singleLine="true" 
     android:inputType="textCapWords"/> 

oder

<EditText 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:id="@+id/editInp" 
     android:hint="@string/hello_world" 
     android:background="@android:drawable/transparent" 
     android:singleLine="true" 
     android:inputType="textCapWords"/>