Majid Ebrahimi

مشکل در لیست ویو

4 ارسال در این موضوع قرار دارد

با سلام.من می خواستم از امیج باتن در هر آیتم لیس ویو استفاده کنم.مثل خیلی از برنامه هایی که در مارکت ها می بینیم.اما وقتی از آن استفاده می کنم برنامه ارور می دهد.  مثلا با زدن روی امیج باتن مطلب به اشتراک گذاری شود.اما با نوشتن دستورstartActivity(intent); برنامه خطا می گیرد.لطفا راهنمایی کنید در کجا مشکل هست.

public class G extends Application {   public static final String   LOG_TAG = "COURSE";   public static Context        gContext;    public static LayoutInflater gInflater;     @Override   public void onCreate() {       super.onCreate();          gContext = getApplicationContext();       gInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);   }}
public class StructureSample extends Activity {   public String pTitle       = "";   public String pDescription = "";   public StructureSample() {   }   public StructureSample(String title, String description) {       pTitle = title;       pDescription = description;   }}

 

public class AdapterSample extends ArrayAdapter {    private static final int _RES_LAYOUT = R.layout.adapter_sample;    public AdapterSample(ArrayList array) {       super(G.gContext, _RES_LAYOUT, array);   }    @Override   public View getView(int position, View convertView, ViewGroup parent) {       ViewHolder holder;       final StructureSample item = getItem(position);       if (convertView == null) {           convertView = G.gInflater.inflate(_RES_LAYOUT, parent, false);           holder = new ViewHolder(convertView);           convertView.setTag(holder);       } else {           holder = (ViewHolder) convertView.getTag();       }       holder.img_send.setOnClickListener(new OnClickListener() {           @Override           public void onClick(View arg0) {                              String txt = item.pDescription; // read file               Intent intent = new Intent(android.content.Intent.ACTION_SEND); //define intent               intent.setType("text/plain"); // set intent type               intent.putExtra(Intent.EXTRA_TEXT, txt); //put content               startActivity(intent);                                         }       });       holder.fill(this, item, position);       return convertView;   }     private static class ViewHolder {           public ViewGroup layout_item;       public TextView  txt_title;       public TextView  txt_description;       public ImageButton img_send;             public ViewHolder(View view) {           layout_item = (ViewGroup) view.findViewById(R.id.layout_item);           txt_title = (TextView) view.findViewById(R.id.txt_title);           txt_description = (TextView) view.findViewById(R.id.txt_description);           img_send=(ImageButton) view.findViewById(R.id.img_send);       }             public void fill(final ArrayAdapter adapter, final StructureSample item, final int position) {                    txt_title.setText(item.pTitle);           txt_description.setText(item.pDescription);                    if (position % 2 == 0) {               layout_item.setBackgroundColor(Color.parseColor("#06ffffff"));           } else {               layout_item.setBackgroundColor(Color.parseColor("#10ffffff"));           }                 }   }}
public class ActivityListView extends Activity {      private static final int           _RES_LAYOUT = R.layout.form_listview_sample;   private ListView                   list_sample;   private ViewGroup                  layout_header;   String                             str[]       = new String[258];     private ArrayList _array      = new ArrayList();   private AdapterSample              _adapter    = new AdapterSample(_array);   @Override   public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(_RES_LAYOUT);       Intent data = getIntent();       str = data.getStringArrayExtra("str");             initializeUi();           fillSampleData();   }   private void fillSampleData() {       for (int i = 1; i < 101; i++) {           StructureSample sample = new StructureSample();           sample.pTitle = "" + i;           sample.pDescription = readFromFile(str[i]);           _array.add(sample);       }       _adapter.notifyDataSetChanged();   }   private void initializeUi() {       list_sample = (ListView) findViewById(R.id.list_sample);                    list_sample.setAdapter(_adapter);       layout_header = (ViewGroup) findViewById(R.id.layout_header);        list_sample.setOnItemClickListener(new OnItemClickListener() {           @Override           public void onItemClick(AdapterView<?> appsAv, View view, int pos, long id) {                                        StructureSample item = _array.get(pos);               String txt = item.pDescription; // read file               Intent intent = new Intent(android.content.Intent.ACTION_SEND); //define intent               intent.setType("text/plain"); // set intent type               intent.putExtra(Intent.EXTRA_TEXT, txt); //put content               startActivity(intent);                                                     }       });             list_sample.setOnItemLongClickListener(new OnItemLongClickListener() {           @Override           public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {               Toast.makeText(getApplicationContext(), " اضافه شد",                       Toast.LENGTH_LONG).show();               // TODO Auto-generated method stub               return false;           }       });       layout_header.setOnClickListener(new OnClickListener() {           @Override           public void onClick(View v) {               Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.uncocoder.com"));               startActivity(browserIntent);           }       });                }      public View getView(int pos, View convertView, ViewGroup parent) {       LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);       View row = inflater.inflate(R.layout.adapter_sample, parent, false);       StructureSample item = _array.get(pos);                      return row;   }         @Override   public boolean onKeyDown(int keyCode, KeyEvent event) {       if (keyCode == KeyEvent.KEYCODE_BACK) {                    System.exit(0);           return true;       }            return super.onKeyDown(keyCode, event);   }   String readFromFile(String filename) {       String ret = "";       try {           InputStreamReader inputStreamReader = new InputStreamReader(                   getAssets().open(filename), "utf8");           BufferedReader bufferedReader = new BufferedReader(                   inputStreamReader);           String receiveString = "";           StringBuilder stringBuilder = new StringBuilder();           while ((receiveString = bufferedReader.readLine()) != null) {               stringBuilder.append(receiveString);           }           inputStreamReader.close();           ret = stringBuilder.toString();       }       catch (FileNotFoundException e) {           Log.e("login activity", "File not found: " + e.toString());       }       catch (IOException e) {           Log.e("login activity", "Can not read file: " + e.toString());       }       return ret;   }}  

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اینکار براحتی قابل پیاده سازی میباشد.

ابتدا ایم آموزش را مطالعه نمایید:

http://p30droid.com/Thread-%D9%84%DB%8C%D8%B3%D8%AA-%D9%88%DB%8C%D9%88-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF

سپس میبایستی بجای آن xml که برای لایوت لیست ویو میباشد ،مثلا از textview استفاده شده است ، از imageview استفاده کنید.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون .خوندم.فقط اگه من بخوام مثلا هزار تا فایل رو بخونم و در لیت ویو قرار بدم بهتره خو فایل ها رو بخونم یا در دیتابیس بریزم.یعنی کدومش سرعت برنامه را بالا تر می بره.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای خوندن اطلاعات دیتابیس راه حل خوبیه.. پس مثل اون آموزش جلو برید و اطلاعاتتون رو ذخیره کنید و برای استفاده کنندگان نمایش دهید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری