2011-12-25 7 views
0

私はhavaに以下のコードを手に入れました。リストの1つの項目をクリックすると、アクティビティが開始されます。しかし、私は何も起こりません。私は、すべてのアイテムが同じ意図を参照するようにしたい "com.whiskey.app.view"とSQLクエリによって与えられたID変数を送信します。コードを何度か閲覧したが、うまく動作しないようだ。Android:listview onClick新しい目的を達成する

public class MainScreen extends Activity implements OnItemClickListener{ 

    public ListView whiskeylist; 
    public String[] DataArryWhiskey; 

    .... 

    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Start db view of whiskey 

    DBConfig whiskeyrows = new DBConfig(this); 


    whiskeyrows.open(); 
     DataArryWhiskey = whiskeyrows.getDataInArray(); 
    whiskeyrows.close(); 


    whiskeylist = (ListView)findViewById(R.id.listofWhiskey); 
    whiskeylist.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , DataArryWhiskey)); 


    // End db view of whiskey 

}// end onCreate 


// catch itemclick event from the main list. 
public void onItemClick(AdapterView av, View v, int position, long l) 
{ 
    // TODO Auto-generated method stub 


    String[] listitem_data = DataArryWhiskey[position].split(","); // break passed sting into a array comma seperated 

    Bundle passingitems = new Bundle(); 
    passingitems.putString("whiskey_id", listitem_data[0]); 

    Intent currentintent = new Intent("com.wiskey.app.view"); 
    currentintent.putExtras(passingitems); 

    startActivity(currentintent); 

} 
+0

はあなたのonItemClickですすべてで呼ばれる? –

答えて

1

、私はあなたの現在の実装での問題は、あなたが呼び出すことはありませんということだと思いこれは仕事をする必要があります!

1

あなたactivityはこれだけListViewをcotains場合は、ListActivityを使用する必要があります。 これらは特にリストのみを含むアクティビティ向けに作成されています。

ListActivitiesの方法の1つは、onListItemClickです。その名前は特に、リスト内の項目をクリックするためのものです。 onItemClickは一般にListsでクリックするのではなく、Activitiesの他のオブジェクトをクリックするためにコードが機能しない理由があります。

は、ここではサンプルに基づいて、あなたのコードを変更してみてください:ListActivity

1

ListActivityからクラスを派生し、onCreate

setListAdapter(whiskeylist); 

にコードの下に入れてimplements OnItemClickListener

を削除してから、あなたのようにこれを持っていますonItemClick

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    String[] listitem_data = DataArryWhiskey[position].split(","); // break passed sting into a array comma seperated 

    ...your code.... 
    startActivity(currentintent); 
} 

はまたを参照してください。

whiskeylist.setOnItemClickListener(this); 

私は思う:上記の答えは動作しますが

ListActivity ListView

関連する問題