2011-07-02 3 views
0

活性でのTextViewとWebViewのを変更する動的インテントとリストビュー)putExtra(送信された各コール

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
    super.onListItemClick(l, v, position, id); 
    final Intent intent = new Intent(); 
    // Set up different intents based on the item clicked: 
    switch (position) 
    { 
     case ACTIVITY_0: 
      intent.putExtra("Value1", "Display this text!"); 
      intent.setClass(this, com.a.someclass.class); 
} 
    startActivityForResult(intent, position); 
} 

putExtraを受信アクティビティ()

@Override 
protected void onCreate(Bundle bundle) { 
    // TODO Auto-generated method stub 
    super.onCreate(bundle); 
    setContentView(R.layout.information); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     return; 
    } 
    String value1 = extras.getString("Value1"); 

    if (value1 != null) { 
     informationTitle = (TextView)findViewById(R.id.informationTitle); 
     informationText = (WebView)findViewById(R.id.informationText); 
     informationTitle.setText(value1); 
    } 

元のメッセージ:

私はseこれについての良いチュートリアルのためにどこにでもarching、私は人々がそれを見ることができるように私のコードをオンラインで掲示したが、私は必要なヘルプが見つかりませんでした。

私は基本的に何をしようとしているのかは、タイトルとコンテンツのWebViewに使用されるダイナミックTextViewを持つ1つのクラスにリンクされているアイテムのリストを持っているだけです。リスト上で項目をクリックすると、基本的には新しいアクティビティ/インテントが開き、それに応じてTextViewとWebViewを変更する引数も渡されます。

リストの各項目に新しいクラスを作成して新しいアクティビティを開く方法はわかっていますが、1つのクラスを再利用してTextViewとWebViewを変更し続けるのが簡単な方法があります。私が言う理由は、私のリストには15の項目があるからですが、それは時間外に拡大するので、新しい項目を開くために50-60の異なるクラスを作成したくありません。

もし私が正しいチュートリアルを指すことができたり、ここで私がいくつかの洞察を与えてくれれば、本当に本当に感謝します!

は、私はあなたがそのための最高のチュートリアルを得ることができるリンクをあげるあなたに

答えて

1

をそれを達成するために、あなたが希望、代わりにそれぞれに異なるIntentを使用しますリスト項目で同じActivityを同じIntentと呼んでくださいが、それに沿って補足を渡します。

たとえば、クリックしたリスト項目によって異なるStringを渡したいとします。あなたは、あなたがメソッドを使用してIntentに入れエキストラを

Bundle extras = getIntent().getExtras(); 

を使用して、その onCreate()でこれらのエキストラを取得し、アクセスすることができます

myIntent.putExtra(String key, String value); 
startActivity(myIntent); 

あなたはこのIntentで始まるActivityしたいと思いますhereを概説した。この方法では、すべてのリスト項目に対して単一のActivityを使用できますが、追加の値に基づいてActivityに異なる情報を表示させることができます。

+0

ありがとう、私は今夜これを試してみましょう! – utamanna

+0

私はこれを動作させることができませんでした。テキストビューを変更しようとすると、putExtraクラスを何かに変更するよう指示されました。 – utamanna

+0

putExtra "class?"オリジナルの質問を更新されたコードで編集すると、あなたが話していることを知るのに役立ちます。 –