2013-10-23 53 views
1

我正在開發一個android應用程序,我必須在數據庫中顯示自定義警報對話框中的數據。這是我的數據庫enter image description here總是我的最後一行數據庫沒有顯示在alertdialog

我試圖通過follwing代碼

  public View getView(int position, View convertView, ViewGroup parent) { 
    Log.d(TAG, "Position " + position); 
    int _id = 0; 
    int type = getItemViewType(position); 
    OrderViewHolder orderViewHolder = null; 
    if (convertView == null) { 
     orderViewHolder = new OrderViewHolder(); 

     switch (type) { 
     case TYPE_STATUS: 

      convertView = inflater.inflate(R.layout.category_header, null); 
      orderViewHolder.setTvTitle((TextView) convertView 
        .findViewById(R.id.category)); 

      break; 

     case TYPE_ITEM: 
      convertView = inflater.inflate(R.layout.order_list_row, null); 
      orderViewHolder.setTvTitle((TextView) convertView 
        .findViewById(R.id.orderTitle)); 
      orderViewHolder.setTvPrice((TextView) convertView 
        .findViewById(R.id.orderPrice)); 
      orderViewHolder.setIvDelete((ImageButton) convertView 
        .findViewById(R.id.deleteOrder)); 
      // orderViewHolder.setIvDelete((ImageButton)convertView.findViewById(R.id.deleteOrder).setLayoutParams(params)) 
      break; 
     } 

     convertView.setTag(orderViewHolder); 

    } else { 
     orderViewHolder = (OrderViewHolder) convertView.getTag(); 
    } 

    if (position == 0) { 
     if (starterCount != 0) { 
      orderViewHolder.getTvTitle().setText(""); 
      // orderViewHolder.getTvTitle().setBackgroundDrawable(R.drawable.tab_starters_menu_on); 
      orderViewHolder.getTvTitle().setTextColor(R.color.Black); 
      orderViewHolder.getTvTitle().setTextSize(12); 
      orderViewHolder.getTvTitle().setTypeface(Typeface.DEFAULT_BOLD); 
      orderViewHolder.getTvTitle().setBackgroundResource(R.drawable.tt111); 
      orderViewHolder.getTvTitle().setHeight(20); 
      orderViewHolder.getTvTitle().setWidth(100); 
      /* 
      * RestaurantHome.setFontTextViewTahoma(OrderListAdapter, 
      * orderViewHolder.getTvTitle()); 
      */ 
     }  
     else {  
      orderViewHolder.getTvTitle().setText(" "); 
      orderViewHolder.getTvTitle().setBackgroundColor(Color.WHITE); 
     } 

    }  


    if ((position !=0)) 

    {   
     System.out.println(" position vlue : "+position); 
     if (oStarterCursor.moveToPosition(position-1)) { 
      String title = oStarterCursor.getString(oStarterCursor.getColumnIndex("item_name")); 
      System.out.println(" value of title "+title); 
      String price = oStarterCursor.getString(oStarterCursor.getColumnIndex("Item_cost")); 
      System.out.println(" value of price "+price); 

      _id = oStarterCursor.getInt(oStarterCursor 
        .getColumnIndex("_id")); 
      if (title != null) { 
       title = title.trim(); 
       orderViewHolder.getTvTitle().setText(title); 
       orderViewHolder.getTvTitle().setTextColor(R.color.black); 
       orderViewHolder.getTvTitle().setTextSize(12); 
       orderViewHolder.getTvTitle().setTypeface(Typeface.DEFAULT); 
       orderViewHolder.getTvTitle().setGravity(Gravity.CENTER_VERTICAL); 
      } 

      if (price != null) { 
       price = price.trim(); 
       orderViewHolder.getTvPrice().setText(price + ".00"); 
       orderViewHolder.getTvTitle().setTextColor(R.color.black); 
       orderViewHolder.getTvTitle().setTextSize(12); 
       orderViewHolder.getTvTitle().setTypeface(Typeface.DEFAULT); 
       orderViewHolder.getTvTitle().setGravity(Gravity.CENTER_VERTICAL);  


      } 
      _id = oStarterCursor.getInt(oStarterCursor.getColumnIndex("_id")); 


     } 


        convertView.setTag(R.id.orderTitle, _id); 
     if (orderViewHolder.getIvDelete() != null) { 
      orderViewHolder.getIvDelete().setTag(R.id.orderTitle, _id); 
     } 
     // _id = 
     // oStarterCursor.getInt(oStarterCursor.getColumnIndex("_id")); 
    } 

    //} 

    return convertView;} 

我要發表我的order_list_row.xml文件上顯示警報,對話框中所有這些數據。

 <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="100sp" 
android:layout_height="fill_parent" 
android:background="#fff" > 

<ImageButton 
    android:id="@+id/deleteOrder" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="20dp" 
    android:background="#fff" 
    android:onClick="clickHandler" 
    android:src="@drawable/icon_close" > 
</ImageButton> 

<TextView 
    android:id="@+id/orderTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_margin="4sp" 
    android:background="#fff" 
    android:textColor="#000" 
    android:textSize="16dp" > 
</TextView> 

<TextView 
    android:id="@+id/orderPrice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="4sp" 
    android:layout_toLeftOf="@id/deleteOrder" 
    android:layout_toRightOf="@id/orderTitle" 
    android:background="#fff" 
    android:textColor="#000" 
    android:textSize="16dp" > 
</TextView> 

</RelativeLayout> 

但它沒有顯示我的數據庫中的最後一個數據。 enter image description here

正如您在我的屏幕截圖中看到的,最後的數據未顯示錶單數據庫。爲什麼fanta沒有顯示?總是最後一行顯示在數據庫的alertdialog中。我的代碼中的邏輯問題是什麼,我無法理解?很可能這是我的邏輯錯誤,但它是我找不到的。我希望我能夠向我所有的好心人解釋我的問題。請幫幫我 。在此先感謝所有

+0

顯示正確的663總額? – Indra

+0

沒有..要管理總金額不是問題...問題是我的最後一行數據庫在哪裏? – DJhon

+0

但由於您處於getview方法中,爲什麼不使用getview方法提供的位置?最好還是使用遊標附件或簡單的遊標適配器。 –

回答

1

最後我解決了我的問題。感謝所有建議我解決此問題的人。

public int getCount() { 
    // TODO Auto-generated method stub 
    Log.d(TAG, "GetCount "+starterCount); 
    return starterCount +1 ; 
} 

而且

if ((position !=0)&& (position != starterCount + 1))  

    {  
      // TODO Auto-generated method stub 
    } 
3

我想知道爲什麼是U傳遞position -1作爲參數去movetoPosition方法 只是通過position .. 我按你的方法最後一個元素是永遠不會被讀取想到!

+0

@ r4jv007 ...謝謝你的回覆..我檢查 – DJhon

+0

ohh對不起,我沒有看到它在getView()方法讓我編輯我的答案 – r4jiv007

+0

我用position- 1,因爲當位置爲1時,檢索0光標級別的數據 – DJhon

相關問題