我想要做的是从 sqlite 读取数据并将数据显示在 ListView 中。然后,当您单击该项目时,打开一个 Web View 以将用户发送到该 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();
}
最佳答案
在onListItemClick()
方法中添加此代码:
字符串 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);
//实例化 Intent
Intent.setData(Uri.parse(urlText.getText.toString());
startActivity( Intent );
关于android - 如何获取sqlite的数据并将其放入FragmentList并单击item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34956653/