انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل لیست ویو سفارشی (برنامه نویسی اندروید)

مشکل لیست ویو سفارشی (برنامه نویسی اندروید)

#9
(۱۳۹۵/۰۵/۰۷, ۰۱:۲۲ ب.ظ)klike نوشته:
(۱۳۹۵/۰۵/۰۶, ۰۸:۲۰ ب.ظ)admin نوشته:
(۱۳۹۵/۰۵/۰۶, ۱۲:۵۳ ب.ظ)klike نوشته: کد های کامل لیست ویو سفارشی
با تشکر از مدیریت Heart

منظور بنده این بود که کدها را درج کنید (درج بخش های مهم آنها به صورت بلوک کد) تا فردی که موضوع را می خواند، نگاهی هم به کدها بیندازد و اگر موردی به ذهنش رسید، آن را تذکر بدهد.
معمولا فایل ها توسط کاربران دانلود نمی شوند.

Flower
من ابتدا یک کلاس جدا گانه برای لیست ویو سفارشیم ساختم که کد هاش بصورت زیر :
کد:
package com.Ehsan.timer;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomList extends ArrayAdapter<String>{
    
    
  private final Activity context;
 
  private final String[] roz;
  private final String[] tar;
  private final String[] time;
  private final String[] mony;
 
  private final Integer[] imageId;


  public CustomList(Activity context,
  String[] roz,String[] tar,String[] time,String[] mony, Integer[] imageId) {
  super(context, R.layout.activity_search, roz);
  this.context = context;
  this.roz = roz;
  this.tar = tar;
  this.time = time;
  this.mony = mony;
  this.imageId = imageId;
}
  @Override
  public View getView(int position, View view, ViewGroup parent) {
  LayoutInflater inflater = context.getLayoutInflater();
 
  View rowView= inflater.inflate(R.layout.activity_search, null, true);
 
  TextView txtday = (TextView) rowView.findViewById(R.id.lbl_roz);
  TextView txtdates = (TextView) rowView.findViewById(R.id.lbl_date);
  TextView txttimes = (TextView) rowView.findViewById(R.id.lbl_times);
  TextView txtmoneys = (TextView) rowView.findViewById(R.id.lbl_moneys);
 
  ImageView imageView = (ImageView) rowView.findViewById(R.id.picitem);
 
  txtday.setText(roz[position]);
  txtdates.setText(tar[position]);
  txttimes.setText(time[position]);
  txtmoneys.setText(mony[position]);
 
  imageView.setImageResource(imageId[position]);
  return rowView;
}
 
}
 و بعد در کلاس اکتیویتی مورد نظرم فرا خوانی کردم . ولی موقع اجرا ارور میده (length : 0 - index : 0)
این هم کد های کلاس ایکتیویتی

کد:
package com.Ehsan.timer;


import java.util.ArrayList;




import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.database.Cursor;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

@SuppressLint("NewApi") public class Search extends Activity {
    
    private ListView listView;  
    private ArrayList<String> list;  
    DATABASEME rdbr;
    
    String[] lbl0 = {};
    String[] lbl1 = {};
    String[] lbl2 = {};
    String[] lbl3 = {};
    Integer[] img = {};    
    
   @TargetApi(Build.VERSION_CODES.HONEYCOMB) @SuppressLint("NewApi") @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);
    
        
        
        listView=(ListView) findViewById(R.id.listboxx);  
          
        
           rdbr=new DATABASEME(getBaseContext());
           rdbr.open();
           Cursor c=rdbr.getall();  
           String TARIKH,ZAMAN,POL;
           try  
           {
              if(c.moveToFirst())  
              {  
                  
                 do  
                 {
                    
                    TARIKH=c.getString(c.getColumnIndex("TARIKH"));
                    ZAMAN=c.getString(c.getColumnIndex("MAJMOE_SAAT"));
                    POL=c.getString(c.getColumnIndex("KARKERD"));
                    String[] rozz  = TARIKH.split("/");
                    
                    lbl0[lbl0.length] = rozz[2];
                    lbl1[lbl1.length] = TARIKH;
                       lbl2[lbl2.length] = ZAMAN;
                       lbl3[lbl3.length] = POL;
                       img[img.length] = R.drawable.web;    
                        
                 }while(c.moveToNext());
                
              }
              else  
              {  
                 Toast.makeText(getApplicationContext(), "هیچ رکوردی موجود نیست", Toast.LENGTH_SHORT).show();  
              }  
              }catch(Exception e)  
              {  
                 Toast.makeText(getApplicationContext(), " خطا : " + e.getMessage(), Toast.LENGTH_SHORT).show();  
              }  
           rdbr.close();
        
        
           //اینجا آیتم های لیست ویو رو نمایش میرم
           CustomList adapter = new
           CustomList(Search.this,lbl0,lbl1,lbl2,lbl3,img);
           listView.setAdapter(adapter);
          
          
           listView.setOnItemLongClickListener(new OnItemLongClickListener() {
                
                @Override
                public boolean onItemLongClick(AdapterView<?> a, View v, int position, long id) {
                    // TODO Auto-generated method stub
                       String numit = list.get(position);
                       rdbr=new DATABASEME(getBaseContext());
                       rdbr.open();  
                       try  
                       {  
                        
                          Cursor c=rdbr.Getitm(numit, null);  
                          String MAJMOE_SAAT,KARKERD;
                          
                          if(c.moveToFirst())  
                          {  
                             do  
                             {
                                
                                MAJMOE_SAAT=c.getString(c.getColumnIndex("MAJMOE_SAAT"));
                                KARKERD=c.getString(c.getColumnIndex("KARKERD"));


                                //تعریف ایتم های لیست دیالوگ
                                final CharSequence[] items = {"مجموع ساعات : " + MAJMOE_SAAT, "کارکرد : "+
                                KARKERD + " تومان"};
                                
                                //ساخت یک ذیالوگ
                                AlertDialog.Builder builder = new AlertDialog.Builder(Search.this);
                                builder.setTitle("جزئیات");
                                builder.setItems(items, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int item) {
                                    
                                }
                                });
                                //قابل نمایش کرد الرت دیالوگ
                                AlertDialog alert = builder.create();
                                alert.show();
                                 
                                
                             }while(c.moveToNext());//حرکت کورس به جدول بعدی.             
                          }
                          else  
                          {  
                             Toast.makeText(getApplicationContext(), "هیچ رکوردی موجود نیست", Toast.LENGTH_SHORT).show();  
                          }  
                          }catch(Exception e)  
                          {  
                             Toast.makeText(getApplicationContext(), "خطا : "+e.getMessage(), Toast.LENGTH_SHORT).show();  
                          }  
                       rdbr.close();
                    
                    return false;
                }
            });
          
          
          
        
        
        //ActionBar
       Typeface kamran = Typeface.createFromAsset(getAssets(), "font/BKAMRANB.TTF");
        ActionBar mActionBar = getActionBar();
        mActionBar.setDisplayShowHomeEnabled(false);
        mActionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater mInflater = LayoutInflater.from(this);
        View mCustomView = mInflater.inflate(R.layout.actionbar, null);
       TextView title = (TextView) mCustomView.findViewById(R.id.title);
       title.setTypeface(kamran);
       title.setText("جستجو");
       title.setTextSize(22);
       

       ImageView menu = (ImageView) mCustomView.findViewById(R.id.menubtn);
       menu.setImageResource(R.drawable.previousbtn);
       
       menu.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                finish();
            }
        });
       
        mActionBar.setCustomView(mCustomView);
        mActionBar.setDisplayShowCustomEnabled(true);
        //ActionBar
       
        
    }

   
   
 

}
پاسخ


پیام‌های این موضوع
RE: مشکل لیست ویو سفارشی - توسط davoodg - ۱۳۹۵/۰۵/۰۳, ۰۲:۳۹ ق.ظ
RE: مشکل لیست ویو سفارشی - توسط admin - ۱۳۹۵/۰۵/۰۳, ۰۸:۰۲ ب.ظ
RE: مشکل لیست ویو سفارشی - توسط klike - ۱۳۹۵/۰۵/۰۴, ۱۱:۵۸ ب.ظ
RE: مشکل لیست ویو سفارشی (برنامه نویسی اندروید) - توسط klike - ۱۳۹۵/۰۵/۰۷, ۰۱:۲۶ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان