2013-09-25 3 views
0

каждое тело Я разрабатываю приложение, в котором я не буду получать вопрос (в-самом деле не NAY проблемы, но не работает) .Я с помощью адаптера здесьCustomAdapter не работает

 menuList = (ListView) findViewById(R.id.menu_list); 
    //Cursor cursor = dh.rawQuery("SELECT _id, item_id, item_type , item_name,Item_cost FROM temp_menu WHERE item_name LIKE ? AND Item_cost LIKE ? ",new String[]{"%","%"}); 

    Cursor cursor = dh.query(DatabaseHelpereKOT.RESTAURANT_menu_temp, null,"item_name=?", new String[] {"Apple"}, null,null, null); 
    startManagingCursor(cursor); 
    CustAdpt custadapter = new CustAdpt(this, cursor); 
    menuList.setAdapter(custadapter); 

Custdpt мой заказ -adapter. Это мой код пользовательского-адаптера

 public class CustAdpt extends CursorAdapter{ 
    private Context mContext; 
    private LayoutInflater mInflater; 
    Cursor cursor, c; 
    View convertView; 
    private String str_item_id; 
    private String str_item_type; 
    private String str_item_name; 
    private String str_item_cost; 
    ViewHolder holder; 
    SQLiteDatabase dh = DatabaseHelpereKOT.getInstance().getDb(); 
    public CustAdpt(Context context, Cursor c) { 
     super(context, c); 
     mInflater = LayoutInflater.from(context); 
     mContext = context; 
     cursor = c; 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     holder = (ViewHolder) view.getTag(); 
     holder.setImType((ImageView) view.findViewById(R.id.veg_nv_image)); 
     holder.setTvTitle((TextView) view.findViewById(R.id.item_name)); 
     holder.setTvPrice((TextView) view.findViewById(R.id.item_cost)); 
     holder.getTvTitle().setText(cursor.getString(cursor.getColumnIndex("item_name"))); 
     holder.getTvDescription().setText(cursor.getString(cursor.getColumnIndex("Item_cost"))); 
     int _id = cursor.getInt(cursor.getColumnIndex("_id")); 
     view.setTag(R.id.item_name, _id); 
     int type = cursor.getInt(cursor.getColumnIndex("item_type")); 
     if (type == 1) { 
      //holder.getImType().setPadding(6, 0, 0, 0); 
      holder.getImType().setBackgroundResource(R.drawable.non_veg); 
     } else { 
      holder.getImType().setBackgroundResource(R.drawable.veg); 
     } 


    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     final ViewHolder holder; 
     c = cursor; 
     convertView = mInflater.inflate(R.layout.list_data_item, parent, false); 
     holder = new ViewHolder(); 
     holder.setId(cursor.getInt(0)); 
     ((ImageView) (convertView 
       .findViewById(R.id.main_body_item_title_second_pics))) 
       .setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         // System.out.println(view.getTag()); 
         addToDB(holder.getId()); 
         //Toast.makeText(getApplicationContext(), "insertDataOrder method", 2000).show(); 
         System.out.println("i m in ryt [palce"); 
        } 
       }); 
     convertView.setTag(holder); 
     return convertView; 
    } 
    void addToDB(Integer objId) { 
     if (objId != null) { 
      int _id = objId; 
      Cursor cursor = dh.query(DatabaseHelpereKOT.RESTAURANT_menu_temp, 
        new String[] { "_id", "item_id", "item_type", "item_name", 
          "Item_cost"},"_id=?", new String[] { String 
          .valueOf(_id) }, null, null, null); 
      if ((cursor != null) && (cursor.getCount() > 0) 
        && cursor.moveToFirst()) 
      { 
       str_item_id = cursor.getString(cursor.getColumnIndex("item_id")); 
       str_item_type = cursor.getString(cursor 
         .getColumnIndex("item_type")); 
       str_item_name = cursor.getString(cursor.getColumnIndex("item_name")); 
       str_item_cost = cursor.getString(cursor 
         .getColumnIndex("Item_cost")); 
       ContentValues orderValues = new ContentValues(); 
       orderValues.put("item_id", str_item_id); 
       orderValues.put("item_type", str_item_type); 
       orderValues.put("item_name", str_item_name); 
       orderValues.put("Item_cost", str_item_cost); 
       dh.insert(DatabaseHelpereKOT.RESTAURANT_menu_order, null, orderValues); 
       String msg = "Menu Item Added Successfully"; 
       Message msgObject = new Message(); 
       msgObject.what = 1; 
       msgObject.obj = msg; 
       addMenuItemHandler.sendMessage(msgObject); 


      } 
     } 
    } 
    public Handler addMenuItemHandler = new Handler() { 

     @Override 
     public void handleMessage(android.os.Message msg) { 
      if (msg.what == 1) { 
       System.out.println("inside handler"); 
       Toast.makeText(mContext, (String) msg.obj, Toast.LENGTH_SHORT) 
         .show(); 
      } 
     }; 

    }; 
} 

Это моя структура database-

   "create table " 
        + RESTAURANT_menu_temp 
        + " (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,item_id TEXT , item_type TEXT , item_name TEXT , Item_cost DOUBLE)", 
        "create table " 
        + RESTAURANT_menu_order 
        + " (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,item_id TEXT , item_type TEXT , item_name TEXT , Item_cost DOUBLE)", 

Мой файл XML, который используется в CustAdpt.java файл как следовать

 <?xml version="1.0" encoding="utf-8"?> 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" > 

<ImageView 
    android:id="@+id/veg_nv_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/non_veg" /> 

<TextView 
    android:id="@+id/item_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" /> 

<TextView 
    android:id="@+id/item_cost" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" /> 

<ImageView 
    android:id="@+id/add_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/add_item_order" /> 
    </LinearLayout> 

сейчас это все код, где я получаю проблемы. Теперь я опишу. Прежде всего данные поступают динамически json формате. Я разбираю все эти json и сохраняю его в базе данных sqlite. Я сделал все эти шаги выше. Теперь я пытаюсь извлечь все эти данные из базы данных в эмулятор с помощью Custom Adapter. Я использую Custom Adpter, потому что в приложении я должен добавить кнопку в каждой строке, и на каждой кнопке я должен выполнить другую задачу. Но у меня проблема с тем, что данные не извлекаются или не отображаются в виде списка. Я не исключаю никаких ошибок, это просто логическая ошибка. Я новичок в мире Android. Поэтому, пожалуйста, уберите меня из этой проблемы. Спасибо заранее всем.

+0

это код. в чем проблема, когда вы застреваете или получаете исключения? – Raghunandan

+0

@ Raghunandan ... Спасибо за ваш ответ ... я получаю любую ошибку или исключение ... этот код для меня ничего не делает. – DilAka

ответ

0

Я думаю, что это проблема курсора. Возможно, данные не хранятся в базе данных. Проверьте свой курсор.

+0

да ... ваше право. Это была проблема с курсором. Я решил эту проблему 2 дня назад. ,, Спасибо за вашу помощь. – DilAka

1

замените menuList.setAdapter(adapter); на menuList.setAdapter(custadapter); У вас есть неправильный объект.

+0

@Vikram ... yup this is error in just posting this questing Я получаю такую ​​же проблему еще ... – DilAka

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