如何获取sqlite的数据并将其放入FragmentList并单击item
How can I get the data of sqlite and put it in FragmentList and click on item
我想做的是从sqlite中读取数据并在列表视图中显示数据。然后,当您单击该项目时,打开一个 Web 视图以将用户发送到 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();
}
您应该使用LoaderCallbacks<Cursor>
加载数据。它为你处理这一切。 http://developer.android.com/training/load-data-background/setup-loader.html
在onListItemClick()
方法中添加此代码:
String url = "http://www.google.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
你的情况:
TextView urlText = (TextView) viewg.findViewById(R.id.url);
// instancing intent
intent.setData(Uri.parse(urlText.getText.toString());
startActivity(intent);
我想做的是从sqlite中读取数据并在列表视图中显示数据。然后,当您单击该项目时,打开一个 Web 视图以将用户发送到 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();
}
您应该使用LoaderCallbacks<Cursor>
加载数据。它为你处理这一切。 http://developer.android.com/training/load-data-background/setup-loader.html
在onListItemClick()
方法中添加此代码:
String url = "http://www.google.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
你的情况:
TextView urlText = (TextView) viewg.findViewById(R.id.url);
// instancing intent
intent.setData(Uri.parse(urlText.getText.toString());
startActivity(intent);