2010-12-18 6 views
1

本当にこれをやろうとすると混乱します:Android開発:情報を渡す

私はあなたが動物に関する情報を読むことを可能にするアプリを作りたいと言います。

私のメインクラス私はlistviewを持っています:Cat、Dog、Snake、Rabbitなど。

私がタップすると、他のクラスと私の他のlayout.xmlがポップアップします。このdetails.xmlレイアウトには、ヘッダーテキスト、画像、およびメインテキストがあります。

ただし、テキストはnullまたは何もありません。だから、どうすればテキストが変わるのかは、どのアイテムをクリックしたかによって決まります。

たとえば、私はウサギの項目を押したときに猫と猫の絵についてのテキストを表示しません。

これは可能ですか? Iveはメソッドを呼び出そうとしましたが、メソッドが現在のクラスにない場合はFCを取得します。 iveも意図を余分に試みたが、didntはうまくいった。

ありがとうございました! あなたの友達; D

答えて

2

私は私の他のクラス 例犬をタップして、私の他のlayout.xmlが

をポップアップ表示されます場合、私はあなたがonListItemClick

protected void onListItemClick(ListView l, View v, int position, long id)

を実装していると思います

このメソッドにはidがあり、次のアクティビティに送信するインテントに追加して、どの行(どのアイテム)がクリックされたかを知ることができます。

したがって、次のアクティビティでは、layout.xmlと受け取ったidに応じて情報が得られます。

編集

のはMyFirstActivityはあなたのリストの活動であるとしましょう:

public class MyFirstActivity extends ListActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listview); 
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"Hello","World","Foo","Bar"})); 

    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) {  
     super.onListItemClick(l, v, position, id); 
     Intent intent = new Intent(this,MySecondActivity.class); 
     intent.putExtra("id",id); 
     startActivity(intent); 
    } 
} 

その後、onListItemClickで、それは私がそれを取得し、取得することができ、余分なとしてidMySecondActivityに意図を送信それに基づく情報

public class MySecondActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     Long lngId = getIntent().getExtras().getLong("id"); 
     Integer id = lngId.intValue(); 
     String message = null;  

     switch(id) { 
      case 0: 
       message = "Hello"; 
       break; 
      case 1: 
       message = "World"; 
       break; 
      case 2: 
       message = "Foo"; 
       break; 
      case 3: 
       message = "Bar"; 
       break; 
     } 

     Toast.makeText(this,message + " was clicked",Toast.LENGTH_SHORT).show(); 
    } 
} 

希望する助けて

+0

これまでのところ完了しました。リストアイテムをクリックすると、2番目のレイアウトがポップアップします。完了しました。 – carefacerz

+0

しかし、動物の詳細は、私がタップしたアイテムと同じです。 – carefacerz

+0

"このメソッドは、次のアクティビティに送信するインテントに追加できるIDがあり、クリックされた行(そのアイテム)を知ることができます。 So次のアクティビティでは、受け取ったIDに応じて適切なlayout.xmlと情報を取得します。 あなたは私にもっと魅力的なことを教えてもらえますか? – carefacerz

関連する問題