-1

私はアプリケーションをビルドしています。ボタンをクリックすると、「Hello world」というテキストでアクティビティ(例:activity_sub)が開始され、別のボタンをクリックすると同じアクティビティが開始されますが、 " 続ける方法がわからないので、私のボタンをまだ置いていません。 アンドロイドスタジオを使用しています。2つの異なるボタンをクリックすると、どのように異なるテキストで同じアクティビティを開始できますか?

ここに、アセットからtxtfileを取得する私のJavaコードがあります。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    try { 
     InputStream is = this.getAssets().open("assetstext.txt"); 
     int size = is.available(); 
     // Read the entire asset into a local byte buffer. 
     byte[] buffer = new byte[size]; 
     is.read(buffer); 
     is.close(); 
     // Convert the buffer into a string. 
     String text = new String(buffer); 
     // Finally stick the string into the text view. 
     TextView tv = (TextView)findViewById(R.id.assetstext); 
     tv.setText(text); 
    } catch (IOException e) { 
     // Should never happen! 
     throw new RuntimeException(e); 
    } 
} 
+0

上記のコードに基づいて、ボタンのテキストが外部ファイルから読み取られることを理解していますか?または、あなたが達成しようとしていることをテキストで説明します。 – jorjSB

+0

同じアクティビティをもう一度開始する理由は何ですか?ボタンをクリックしたときにテキストビューのテキストを変更するのは簡単ではありませんか? – exe

+0

はい、私は同じ活動を開始しない場合、私は歌lyric app.Thanksを構築したい多くのactivities.becauseを作成する必要があります –

答えて

1

2番目のアクティビティを呼び出すときに、呼び出し元インテントの余分なテキストを設定する必要があります。

Intent starterIntent = new Intent(FirstActivity.class.this,SecondActivity.class) 
starterIntent.putExtra("text_key", "<your text>"); 

"text_key"は、次のアクティビティでテキストを取得できるようにするルックアップキーです。各ボタンはもちろん< "your text">の値を設定する必要があります。イムは、あなたがそうでなければ、あなたが文句を言わないテキストを見つける最初のアクティビティ(text_key)で使用される正確なキーを使用していること

String text = getIntent().getStringExtra("text_key"); 

ルック:

は、第2のアクティビティに次のようなテキストを取得します。

最後にテキストを設定します。

+0

は動作します!私は自分のコードを変更する必要があります。ありがとう –

+0

それがうまくいけば答えを受け入れるのがいいですか? –

0

あなたのろ過に基づいてテキストビューに、アクティビティのgetString、ディスプレイののonCreateで、その後の活動を起動している間putextraとしてテキストを渡します。

0

達成したいことは何ですか、2つのテキストビュー、同じテキストビュー、2つの異なるテキストが必要かどうかは不明です。

それにもかかわらず、私は両方の状態について答えるつもりです。

複数textviewsを持つようにしたい場合は、次にように、他のTextViewを表示または非表示にするsetVisibiltyメソッドを使用します。あなたは、単にはるかに簡単であるのTextViewに文字列を上書きすることができ

// here btn is your button and txtview1 and txtview2 are your textviews 
// objects respectively. 
btn.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      txtView1.setVisibility(View.Gone); 
      txtView2.setText("hi buddy!"); 
     } 
    }); 

さも。以前のテキストビューと同じように。

関連する問題