Android 如何获取sqlite的数据并将其放入FragmentList中并单击项目

Android 如何获取sqlite的数据并将其放入FragmentList中并单击项目,android,sqlite,android-sqlite,android-listfragment,Android,Sqlite,Android Sqlite,Android Listfragment,我要做的是从sqlite读取数据并在listview中显示数据。然后,当您在项目中单击时,打开一个webview以将用户发送到url 我是ListFragment的扩展 这是我的数据库sqlite,它可以工作: private static final String DATABASE_CREATE = "create table " + TABLENAME + "(" + ID + " integer primary key autoincrem

我要做的是从sqlite读取数据并在listview中显示数据。然后,当您在项目中单击时,打开一个webview以将用户发送到url

我是ListFragment的扩展

这是我的数据库sqlite,它可以工作:

 private static final String DATABASE_CREATE = "create table "
            + TABLENAME + "("
            + ID + " integer primary key autoincrement, "
            + URL + " text not null, "
            + NAME + " text not null); ";
目前,我可以在listfragment中获取并显示名称,但我不知道如何通过该项传递url来打开webview(在这段代码中,我没有实现webview的部分,因为我希望首先可以将url传递到当前项)

这就是我正在尝试的:

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

        ViewGroup rootView = null;


            dataBase.getAllData();


            String[] name = new String[dataBase.getAllData().size()];
            String[] url = new String[dataBase.getAllData().size()];

            for (int i = 0; i < dataBase.getAllData().size(); i++) {
                name[i] = dataBase.getAllData().get(i).getName();
                url[i] = dataBase.getAllData().get(i).getUrl();
                Log.e("Total", name[i] + "" +url[i]);

                rootView = (ViewGroup) inflater.inflate(R.layout.fragment_listview, container, false);
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.favourites, R.id.newspaperNameFavourite, name);
                setListAdapter(adapter);
                setRetainInstance(true);


                mAdView = (AdView) rootView.findViewById(R.id.adViewListFragment);
                adRequest = new AdRequest.Builder().build();
                mAdView.loadAd(adRequest);

            }
            return rootView;
    }

    @Override
    public void onListItemClick(ListView l, View view, int position, long id){
        ViewGroup viewg=(ViewGroup)view;
        TextView tv=(TextView)viewg.findViewById(R.id.newspaperNameFavourite);
        Toast.makeText(getActivity(), tv.getText().toString(), Toast.LENGTH_LONG).show();

    }
@覆盖
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
ViewGroup rootView=null;
dataBase.getAllData();
String[]name=新字符串[dataBase.getAllData().size()];
String[]url=新字符串[dataBase.getAllData().size()];
对于(int i=0;i
您应该使用
LoaderCallbacks
加载数据。它为你处理一切

onListItemClick()
方法中添加此代码:

stringurl=”http://www.google.com";
意向意向=新意向(意向.行动\视图);
setData(Uri.parse(url));
星触觉(意向)

就你而言:

TextView urlText=(TextView)viewg.findViewById(R.id.url);
//实例意图
setData(Uri.parse(urlText.getText.toString());

startActivity(intent);

是的,好的,但是如何添加我在字符串[]中获得的数据listview中每一行的url??我会这样做,我也认为这是一种最佳实践。为您的目的创建一个模型,并根据需要为其提供尽可能多的字段。使用private声明这些字段,并实现getter、setter和constructor。然后在database helper类中创建一个方法,该方法将返回y的对象我们的模型类,它将执行从数据库获取数据的功能。