ورود

View Full Version : مشکل در set کردن adapter کنترل listview در fragment



harani
جمعه 01 فروردین 1393, 12:40 عصر
سلام دوستان من میخواهم داده های ستون دیتابیسم را در یک لیست در viewpager نشان بدم .بنابراین یک لیست ویو در یک فرگمنت انداختم کد اتصال به دیتابیسم مشکلی نداره ولی نمیدونم چرا در هنگام list.setAdpater(adapter);//a برنامه کرش میکنه اینم کد من :

Fragment



import java.util.ArrayList;

import net.bornak.diabetes.FoodObjects;
import net.bornak.diabetes.R;
import net.bornak.diabetes.adapters.FoodAdapter;
import net.bornak.diabets.database.DataBaseHelper;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;

public class FoodFragment extends Fragment {
private String Index;
private ListView list;
private DataBaseHelper db;
private Cursor cursor;
private FoodAdapter foodadapter;

public static FoodFragment newInstance(String Index) {
FoodFragment fragmentFirst = new FoodFragment();
Bundle args = new Bundle();
args.putString("Index", Index);
fragmentFirst.setArguments(args);
return fragmentFirst;
}

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Index = getArguments().getString("Index");
list = (ListView) getActivity().findViewById(R.id.list_caloryfood);
ArrayAdapter<String> h = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,new String[]{"asdasd","ads",":asdasd","adsds"
,"as,","Asasf","ASfas","Asasf","Asfasf","Sdgsdg","iuio"});
list.setAdapter(h);();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return LayoutInflater.from(getActivity()).inflate(
R.layout.fragment_calory_food, container, false);
}

#root#
جمعه 01 فروردین 1393, 14:14 عصر
مدیر جان لطفا پاک کن

shahin bahari
جمعه 01 فروردین 1393, 15:44 عصر
موردی که به چشمم اومد این بود که چرا لیست رو توی onCreate مقدار دهی کردید. توی فرگمنت موقع صدا کردن onCreate هنوز ویو ساخته نشده برای همین مشکوک هستم به این که findView درست بتونه به لیست وصل بشه. مقدار دهی به لیست رو توی onCreateView انجام بدید.فکر کنم درست بشه. نیازی هم به ایجاد ویو توی onCreateView به اون شکل نیست!
View v=inflater.inflate(R.layout.your_layout,container, false);
list=v.findView.....
return v;

farhadfery
یک شنبه 03 فروردین 1393, 10:21 صبح
چرخه حیات فرگمنت را حتما مطالعه کنید.