2010-11-18 8 views

Répondre

9

Peut-être que vous pouvez avoir un de chacun et de basculer leur visibilité. Lorsque le bouton est cliqué, prenez le texte du visible, appliquez-le à l'invisible, puis échangez leur visibilité.

+3

@MarvinLabs: +1, il était plus rapide;) –

4

Vous pouvez avoir les deux dans votre mise en page et à tout moment en afficher un seul. Lorsque la valeur EditText est modifiée, mettez à jour le TextView masqué pour les synchroniser.

+2

@ Rich: Ok, vous êtes plus vite :-) –

0

Je ne l'ai jamais essayé mais vous pouvez (probablement) utiliser EditText et définir l'arrière-plan à celui de TextView. Puis, vous pouvez simplement changer d'arrière-plan en fonction de ce que vous voulez voir à un moment donné. Je vais essayer de mettre en œuvre et voir si ça va marcher

67

utiliser au mieux un 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> 
... 

Ensuite, vous pouvez changer les vues par

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

Je pense sincèrement sur tous, cette réponse était la meilleure. C'est tellement plus simple. Je suis curieux. Quand devrait-il être utilisé? J'ai lu le document, et il dit pour les choses de type animation. Mais dans ce cas, il est logique de l'utiliser. Alors, y a-t-il une raison de ne pas l'utiliser dans ce cas? – Andy

+0

Voir commutateur fonctionne bien et vous avez la possibilité d'ajouter facilement des animations. – Patrick

+1

Nice, mais ajouter de l'espace supplémentaire dans la déclaration 'switcher' –

0

Ce que je pense que le mieux est de effectivement utiliser le concept Framelayout.

telle que mise en page originale ressemble

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

place à l'intérieur Framelayout comme celui-ci.

<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> 

Ici, le LinearLayout tiendra tous vos EditText View. N'oubliez pas de rendre l'arrière-plan de EditText View null.

Vous aimez cette

<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"/> 

ou

<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"/>