2013-07-04 5 views
0

Я использую ниже код для просмотра списка. Но он не работает для меняСобытие события просмотра списка

 public class ApparelsSubcatBrand extends ListActivity{ 
int position_list_v; 
//ListAdapter adapter; 
String urlImg, pid, pname, mrp, shipping, sellinprice = null, prodSize, 
     selSize,cbValue; 
    ListView listView1; 
    protected SQLiteDatabase sqlitedatabase_obj; 
    Cursor cursor; 

    public static String[] title_array ; 
    public static String[] description_array ; 

    protected ListAdapter adapter; 
    SQLiteDatabase dh; 

    String[] product_name = {}; 

     int[] to_for_text_in_list = {R.id.title_info_txt_v}; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.apparels_subcat_brand); 
     AndroidContext.setContext(this); 
     sqlitedatabase_obj = DataBaseHelper.getInstance().getDb(); 
     listView1 = (ListView) findViewById(R.id.list); 


     cursor = sqlitedatabase_obj.rawQuery("SELECT _id, Key_ProductName , Key_SellingPrice FROM APPARELS_SUBCAT_BRAND WHERE Key_ProductName LIKE ? AND Key_SellingPrice LIKE ? ",new String[]{"%","%"}); 


     final SimpleCursorAdapter simple=new SimpleCursorAdapter(this, R.layout.appareal_listview_text ,cursor, new String[]{"Key_ProductName","Key_SellingPrice"} , new int[] {R.id.title_info_txt_v,R.id.description_info_txt_v}); 

     setListAdapter(simple); 

    } 
    @Override 
    public void onListItemClick(ListView parent, View view, int position, 
      long id) { 
     //position_list_v = position; 
     Intent intent = new Intent(ApparelsSubcatBrand.this,BuyNowOffline.class); 
     Cursor cursor = (Cursor)adapter.getItem(position); 
     intent.putExtra("product_id", cursor.getInt(cursor.getColumnIndex("Key_Product_ID"))); 
     startActivity(intent); 
    } 

Событие клика не генерируется. Это мой общий код для этой деятельности. Я хочу, чтобы, когда я нажимаю на первый элемент, то он получить соответствующую product_id из базы данных для этого элемента

+0

Где находится ваш ListView? Не могли бы вы добавить еще код – Jackyto

+0

Можете ли вы показать нам полный код (где вы добавляете слушателя onClick)? – dors

+1

Является ли 'адаптер' типа' ListView' ?? –

ответ

1

Я думаю, проблема схожа с проблемой я столкнулся прежде, но потому, что вы не показываете ваш адаптер просмотра XML или код, я не могу дать вам наводящий код, но вы можете увидеть это answer ,

Надеется, что это может помочь вам :)

+0

Я отредактировал свой вопрос для вас. – DJhon

+0

@BlueGreen В вашем представлении адаптера есть два текстовых изображения, поэтому см. Ссылку в ответе, я думаю, что это может вам помочь. – dreamtale

+0

Спасибо за ваш ответ. – DJhon

0

Try это,

ListView lv = getListView(); 

lv.setTextFilterEnabled(true); 

// Bind onclick event handler 
lv.setOnItemClickListener(new OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

         // Put in your code here, what you wanted trigger :) 

       if(your_condition){ 
         Intent intent = new Intent(ApparelsSubcatBrand.this,BuyNowOffline.class); 
       //  Cursor cursor = (Cursor)adapter.getItem(position); 
         intent.putExtra("product_id", cursor.getInt(cursor.getColumnIndex("_id"))); 
         startActivity(intent); 
        } 
       } 
}); 

И вы должны добавить свою деятельность в AndroidManifest файле

<activity android:name = ".BuyNowOffline"/> 
+0

Спасибо за ваш ответ, но он не работает для меня. – DJhon

0

попробовать этот

public void onListItemClick(ListView parent, View view, int position, long id) { 
    Intent intent = new Intent(ApparelsSubcatBrand.this,BuyNowOffline.class); 
    intent.putExtra("product_id", id); 
    startActivity(intent); 
} 

получить значение в другой деятельности

long product_id= getIntent().getLongExtra("product_id", 0); 
+0

@sunil ... id здесь принадлежит идентификатору поля базы данных. – DJhon

+0

Я пытаюсь сохранить идентификатор в курсоре и хочу получить соответствующий идентификатор продукта – DJhon

+0

У вас его уже есть. Посмотрите параметры для метода. См. Раздел «Длинные идентификаторы»? Это то, что вы ищете. –

0

вы можете попробовать этот пример:

lv.setAdapter (новый ArrayAdapter (ClassName.this)); lv.setOnItemClickListener (новый AdapterView.OnItemClickListener() { @Override общественные недействительный onItemClick (AdapterView arg0, Просмотр arg1, внутр арг2, длинные arg3) { } });

Надеюсь, он сработает

Смежные вопросы