2017-08-04 3 views
-1

MainActivityonClickListener ne cache pas mon texte

... 

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener{ 
    TextView tv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     tv = (TextView) findViewById(R.id.textID); 
     Button b = (Button) findViewById(R.id.button); 
     b.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v){ 
     tv.setText(R.string.text); 
    } 
} 

string.xml

<resources> 
    <string name="text">This text do not hide!</string> 
</resources> 

Ce code montre directement le texte que je vais essayer de montrer quand je clique sur le bouton.

Ma question est, où est-ce que je fais l'erreur? Pourquoi ce code ne fonctionne pas?

+4

Je ne vois pas de code qui est censé cacher quoi que ce soit –

+0

je veux dire au début de l'application ne doit pas apparaître ce texte lorsque je clique sur le bouton? – Nerdvan

+0

en général, il devrait, mais cela dépend de votre mise en page. Vous pourriez rendre votre TextView invisible, ou le mettre sous quelque chose, ou hors de l'écran, ou d'autres 1000 raisons. –

Répondre

0

pour cacher une vue:

tv.setVisibility(View.GONE); 

par ex.

@Override 
public void onClick(View v){ 
    tv.setVisibility(View.GONE); 
} 

à vider TextView:

tv.setText(""); 

par ex.

@Override 
public void onClick(View v){ 
    tv.setText(""); 
} 
+0

Merci. Je n'ai pas pu expliquer mon problème. Je veux juste montrer le texte quand je clique sur le bouton.Ne pas le montrer instantanément lorsque l'application commence. – Nerdvan

+0

puis sur click -> tv.setVisibility (View.VISIBLE); –

+0

2ème façon: - puis sur click -> tv.setText ("texte visible"); –

0

Pour cacher vue faire:

tv.setVisibility(View.GONE); 

Si vous ne souhaitez que supprimer le texte faire que:

tv.setText(""); 
0

Première intérieur onCreate() méthode

ajouter

tv.setVisibility(View.GONE); 

Après cela, cliquez sur le bouton:

@Override 
public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.button: 
       tv.setVisibility(View.VISIBLE); 
       tv.setText(R.string.text); 
       break; 
     } 
} 
0

pour cacher votre TextView ..

utilisation tv.setVisibility(View.GONE); ou tv.setVisibility(View.INVISIBLE);

et si tu veux mettre rien sur votre textView que utilisation tv.setText("");

0

Utilisez la méthode getString() pour obtenir la chaîne des ressources.

Essayez ceci,

@Override 
public void onClick(View v){ 
    tv.setText(getString(R.string.bilmece_cevabi)); 
}