将不同的任务分配给不同的列表项

时间:2013-03-12 21:20:22

标签: android eclipse

我有一个列表项,其中有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

}

谢谢

2 个答案:

答案 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));

希望这有帮助!