رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

با سلام.من می خواستم از امیج باتن در هر آیتم لیس ویو استفاده کنم.مثل خیلی از برنامه هایی که در مارکت ها می بینیم.اما وقتی از آن استفاده می کنم برنامه ارور می دهد.  مثلا با زدن روی امیج باتن مطلب به اشتراک گذاری شود.اما با نوشتن دستور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 استفاده کنید.

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

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

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

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

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...