چگونگی استفاده از لیست ویو در فرگمنت

0 امتیاز
169 بازدید
سوال شده شهریور 26, 1395 توسط armandl  

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

خواندن اطلاعات رو میتونم انجام بدم و نتیجه در یک لیست ویو توی اکتیویتی نشون میده اما نمیتونم اطلاعات رو در یک لیست ویو در فرگمنت نشون بدم
کلاس Adapter 

این کد زیر رو توی یک فرگمنت نوشتم ولی خط listViewOne.setAdapter(adb); مشکل داره

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        ListView listViewOne = (ListView) container.findViewById(R.id.listViewOne);
        DatabaseHandler db = new DatabaseHandler(getContext());
        db.open();
        final List<HashMap<String , Object>> books_list;
        books_list = db.getTableOfContentOne();
        String[] from = {"title"};
        int [] to = {R.id.TxtTitleTexts};
        SimpleAdapter adb = new SimpleAdapter(getContext() , books_list , R.layout.tbl_row ,from , to);
        listViewOne.setAdapter(adb);
        db.close();

        listViewOne.setOnItemClickListener(
                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        Intent i = new Intent(getContext(), ContentActivity.class);
                        String my_id = books_list.get(position).get("id").toString();
                        i.putExtra("id", my_id);
                        startActivity(i);
                        //overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
                    }
                }
        );
        return inflater.inflate(R.layout.fragment_one, container, false);
    }
این مطلب را به اشتراک بگذارید

1 پاسخ

+1 امتیاز
پاسخ داده شده شهریور 26, 1395 توسط sajjadfcb  
انتخاب شده شهریور 26, 1395 توسط armandl
 
بهترین پاسخ

سلام

مشکل شما در خط کد زیره 

ListView listViewOne = (ListView) container.findViewById(R.id.listViewOne);

شما باید اول یک ویو از با استفاده از کلاس View بسازد ولایه فرگمنت رو inflate بکنید یعنی به صورت زیر

View view = inflater.inflate(R.layout.fragment_one, container,false);

 وبه جای استفاده از container که یک ViewGroup هست ویو خودتون رو می نویسید و findViewById میکنید

ودر نهایت ویویی که ساختید رو بر می گردونید

در کل کد شما باید به صورت زیر باشه.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {

   View view =inflater.inflate(R.layout.fragment_one, container, false);
   ListView listViewOne = (ListView) view.findViewById(R.id.listViewOne);
   DatabaseHandler db = new DatabaseHandler(getContext());
   db.open();
   final List<HashMap<String , Object>> books_list;
   books_list = db.getTableOfContentOne();
   String[] from = {"title"};
   int [] to = {R.id.TxtTitleTexts};
   SimpleAdapter adb = new SimpleAdapter(getContext() , books_list , R.layout.tbl_row ,from , to);
   listViewOne.setAdapter(adb);
   db.close();

   listViewOne.setOnItemClickListener(
         new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               Intent i = new Intent(getContext(), ContentActivity.class);
               String my_id = books_list.get(position).get("id").toString();
               i.putExtra("id", my_id);
               startActivity(i);
               //overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
            }
         }
   );
   return view;
}
دارای دیدگاه شهریور 26, 1395 توسط armandl  
مشکلم حل شد ،

مرسی از توضیحات خوبتون و ممنون از وقتی که گذاشتن واسه این موضوع

اجرتون با اقا امام حسین ، تشکر
دارای دیدگاه شهریور 26, 1395 توسط sajjadfcb  
خواهش می کنم.

1,006 سوال

839 پاسخ

1,353 دیدگاه

1,315 کاربر

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

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...