有什么方法可以显示名称
"TechCrunch"
"Twit"
"NASA"
在列表视图中,当用户点击其中一个时,它应打开一个意图,其中列出了相应网站的链接。
任何想法都赞赏。
答案 0 :(得分:3)
如果您不希望数据库生成ListView
,并且您希望自己将ListView
的每个网站添加到适配器,那么您可以执行以下操作。
您必须创建一个Item
类,如下所示:
public class Item {
private String mName;
private int mLink;
public Item(String name, int link) {
this.mName = name;
this.mLink = link;
}
public int getLink() {
return mLink;
}
public void setLink(int link) {
this.mLink = link;
}
public String getName() {
return mName;
}
public void setName(String name) {
this.mName = name;
}
@Override
public String toString() {
return this.mName;
}
}
然后将ListView的适配器设置为:
List<Item> dataForTheAdapter = new ArrayList<Item>();
// add some data
dataForTheAdapter.add(new Item("Apple", "www.Apple.com"));
dataForTheAdapter.add(new Item("Microsoft", "www.Microsoft.com"));
dataForTheAdapter.add(new Item("Google", "www.Google.com"));
mContext = MyActivity.this;
// R.layout.row is a layout, that contains only one TextView
mAdapter = new ArrayAdapter<Item>(mContext, R.layout.row, dataForTheAdapter);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(mAdapter);
现在为OnItemClickListener
设置ListView
。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String url = mAdapter.getItem(position).getLink();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
答案 1 :(得分:1)
基本上你需要两个字符串数组:
在array.xml中:
<string-array name="search_provider_name_array">
<item>Google</item>
<item>Yahoo</item>
<item>Bing</item>
<item>Baidu</item>
</string-array>
<string-array name="search_provider_link_array">
<item>https://www.google.com</item>
<item>https://www.yahoo.com</item>
<item>https://www.bing.com</item>
<item>https://www.baidu.com</item>
</string-array>
在layout_search_provider.xml中,它包含一个列表视图:
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv_search"
android:dividerHeight="1dp"/>
在您的活动中:
public class SearchProvider implements AdapterView.OnItemClickListener {
private ListView lv_search;
private String[] names = getResources().getStringArray(R.array.search_provider_name_array);
private String[] links = getResources().getStringArray(R.array.search_provider_link_array);
//..
@Override
public View onCreateView(View v, String name, Context context, AttributeSet attrs) {
lv_search= (ListView) v.findViewById(R.id.lv_search);
ArrayAdapter sAdapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, names);
lv_search.setAdapter(sAdapter);
lv_search.setOnItemClickListener(this);
return v;
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if(i<links.length){
Uri uri = Uri.parse(links[i]);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
}
当您的列表是动态列表时,您可以使用以下方法更新列表视图。