我有一个列表项,其中有3个项目。我想做以下事情:当我点击其中一个时,我被重定向到谷歌,当我点击其他时,我去facebook等等。在我的代码中,当我点击3个列表项中的任何一个时,我会转到相同的地址:google。如何为不同的列表项分配不同的链接?这是我的代码。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Listimizde kaç tane eleman olduğunu bulmak için bunu kullanıyoruz
ListView listView = (ListView) findViewById(R.id.linkList);
String[] links = new String[] { "http://www.facebook.com",
"http://www.twitter.com", "http://www.hurriyet.com.tr" };
// ArrayAdapter, bu listviewin nasıl görüneceğini belirtir. ilk argument
// this, yani bu list
// 2. argument list viewin şekli, yani simple dropdown şeklinde olsun,
// 3. argument de links
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, links);
listView.setAdapter(adapter); // start the adapter for the list view
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos,
long id) {
// SO listener
Intent myWebLink = new Intent(
android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://www.google.com"));
startActivity(myWebLink);
}
});
// OR listener
}
谢谢
答案 0 :(得分:3)
您可以通过职位ID
实现这一目标switch (pos){
case 1:
//go to google
break;
case 2:
//go to facebook
break;
default:
//where ever you want
break;
}
答案 1 :(得分:1)
如果您有固定订单,则可以评估pos
参数
switch (pos) {
case 1 : myWebLink.setData(Uri.parse("http://www.google.com")); break;
case 2 : myWebLink.setData(Uri.parse("http://www.facebook.com")); break;
case 3 : // do something totally different
}
如果您不能依赖该职位或者您只有链接(并且可能有很多链接),您可以使用AdapterView:
String url = (String) adapter.getItemAtPosition(pos);
myWebLink.setData(Uri.parse(url));
希望这有帮助!