Android中activity跳转与Intent传值(重复)
16lz
2021-01-26
在一个APP中一般都是有多个activity的因为一般一个activity对应一个界面。
有多个activity就意味着要进行activity之间的跳转。
首先建立一个新的activity和原来的activity进行关联。(其实一个activity就是一个类)
建立一个activity:
public class DetailActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main3); //需要展示的界面。 }}
在清单文件中加入这个activity以表明有这个类。 例:
<?xml version="1.0" encoding="utf-8"?> //配置的清单。
在这里第一个activity是一个listview,我是在listview中点击单个item时进行跳转到DetailActivity的。 代码:
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { view.getId(); //Toast.makeText(this, "你点击了第" + position + "个item", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(this, DetailActivity.class); startActivity(intent); }
intent传值是intent.putExtra(String key, Xxx value); 例:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { view.getId(); //Toast.makeText(this, "你点击了第" + position + "个item", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(this, DetailActivity.class); intent.putExtra("index", ""+position); //设置值传到下一个activity中, startActivity(intent); }
在下一个activity中进行值的接受: public class DetailActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main3); String index = getIntent().getStringExtra("index"); //获得上一个activity传过来的值。 TextView tv_show = (TextView) findViewById(R.id.info); //获得页面的TextView。 tv_show.setText("点击了:" + index); //对页面的TextView进行赋值,显示。 }}
在第一个listview中的那个activity中我们还可以在onItemClick方法中用到parent参数,通过parent参数可以获得listview中的map。
例: parent.getItemAtPosition方法其实就是调用了自定义的adapter中的getItem方法。
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { view.getId(); //Toast.makeText(this, "你点击了第" + position + "个item", Toast.LENGTH_SHORT).show(); HashMap map = (HashMap) parent.getItemAtPosition(position); //获得某个位置上的map进而获得他里面的要用到的值,进行传递。 Intent intent = new Intent(); intent.setClass(this, DetailActivity.class); intent.putExtra("index", "" + position); intent.putExtra("title", ""+map.get("title")); //map.get("title")就是获得item中的title项 title是因为在当时设置list中的map的key是title。 startActivity(intent); }
更多相关文章
- Android中防止重复点击的小技巧
- android 处理txt文件类FileUtils,利用java反射机制访问非sdk类和
- APP完全退出
- Android(安卓)好的源码依赖包 收集
- [已解决]eclipse+ADT+Android(安卓)SDK 搭建Android(安卓)开发环境
- Android(安卓)当子控件设置 focusable=true 的事件不能点击的问
- Android(安卓)Studio安装时 :Gradle project sync failed的解决
- 聊聊自定义View那些事
- Android(安卓)Studio--快捷键