【发布时间】:2015-11-06 03:16:48
【问题描述】:
我正在制作一个非常简单的应用程序,它显示 100 个随机数,当在列表视图中单击一个数字时,它会启动一个 Web 浏览器。我很确定我已经完成了所有工作并且可以正常工作,但是无论如何要将相同的意图与列表中的每个数字/位置联系起来吗?除了 switch 语句?如果需要,我会做一个 switch 语句,但 100 个数字很多。哈哈。对于我的生活,我不知道该怎么做。循环会起作用吗?我只使用 Android Studio 大约两个月。在此先感谢您的帮助。
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id){
switch ( position ) {
case 0: String link = "https://duckduckgo.com/";
Uri uri = Uri.parse(link);
Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(viewIntent);
}
String link = "https://duckduckgo.com/";
Uri uri = Uri.parse(link);
Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(viewIntent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_assignment4);
ListView ListViewNumbers = (ListView) findViewById(R.id.ListViewNumbers);
Random ran = new Random();
List<Integer> nums = new ArrayList<>(100);
for(int i = 0; i < 100; i++){
Integer r = ran.nextInt();
nums.add(r);
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this, R.layout.num_list_layout, nums);
ListViewNumbers.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_assignment4, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
-
你的意思是每个项目都有不同的uri?
-
每个项目都可以有相同的 uri,我只需要一种方法来设置所有 100 个数字的意图,而无需输入 100 个案例。哈哈。
-
如果意图相同,为什么不提前创建一个意图并在onItemClick上启动它。
-
@BHP90 所有项目都有相同的 url,那么你为什么关心位置编号?为什么不在没有
switch case的情况下对 onItemClick 事件开始新的意图? -
这对我来说都是一次学习经历。哈哈。我感谢你们的帮助。如果我在 onItemClick 中使用 url/uri 声明意图,它会在单击列表视图时启动网页?
标签: android listview android-intent