1

テキストを非表示にし、テキストビューがアクティビティのスペースを占有し続けるという私の目標は、次を使用してテキストを非表示に設定しました。

tv.setVisibility(View.INVISIBLE);

ボタンをクリックすると、テキストが表示されます。コードの結果がテキストだけでなくテキストビュー全体を非表示にすることを除いて、すべてが正常に機能します。

android:background="@drawable/border1" 

  <TextView 
  android:id="@+id/introclusion_tv3" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:background="@drawable/border1" 
  android:textSize="20sp" /> 

アプリを起動すると、ボタンをクリックした後にテキストで埋められる空のスペースのみが表示されますが、そこには(形状の背景から来る)境界線がないため、テキストビュー全体を非表示にし、テキストのみを非表示にしてテキストビューを保持する必要がありますテキストが INVISIBLE に設定されている場合に表示される背景、

どんな助けでも本当に感謝します、ありがとう。

これが私がやった方法です:

  TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
    tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));
    tv11.setVisibility(View.INVISIBLE); 

次に、クリックして正しいパスワードを入力すると、テキストが次のように表示されます。

   Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);

        dialogButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                 dialog.dismiss();

                EditText password = (EditText) dialog.findViewById(R.id.password);

                if( password.getText().toString().length() > 0 ) {
                    if( password.getText().toString().equals("test")) {

                        TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
                        tv11.setTypeface(FontFactory.getBFantezy(getBaseContext()));
                        tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));
                        tv11.setVisibility(View.VISIBLE);
                        }
4

4 に答える 4

3

透明なテキストの色はテキストを隠します:

<TextView 
  android:id="@+id/introclusion_tv3" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:background="@drawable/border1" 
  android:textColor="@android:color/transparent"
  android:textSize="20sp" /> 

テキストを表示したい場合は、メソッドを使用してプログラムでテキストの色を変更しますsetTextColor()

tv11.setTextColor(color);
于 2013-09-18T22:08:49.617 に答える
1

あなたは簡単なトリックを作ることができます:2つの文字列を書く

最初と2番目のコードで、この行を削除するとしましょう

 tv11.setVisibility(View.INVISIBLE); 

 tv11.setVisibility(View.VISIBLE);

そうなる

TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
tv11.setText(Html.fromHtml(getString(R.string.introclusion_one)));

次に、2 番目の部分に次のように記述します。

  if( password.getText().toString().equals("test")) {

       TextView tv11=(TextView)findViewById(R.id.introclusion_tv3);
       tv11.setTypeface(FontFactory.getBFantezy(getBaseContext()));                         
       tv11.setText(Html.fromHtml(getString(R.string.introclusion_one_appear)));                       
                    }

最初の文字列は空になります

 <string name="introclusion_one">

2番目の文字列にテキストを書き込みます

 <string name="introclusion_one_appear">

お役に立てれば幸いです。

于 2013-09-18T23:07:16.663 に答える
0

テキストビューにあるものを次のような文字列として保存します。

        String x = (String)tv11.getText();

次に、次のようにテキスト ビューを空にします。

String x = "";
for(int i = 0; i < x.length(); i++){
x +=" ";
}
tv11.setText(x);

テキストビューを再び表示するには、次のようにします。

tv11.setText(x);
于 2013-09-18T22:08:47.620 に答える