您的位置:首页 > 移动开发 > Android开发

Android中activity跳转与Intent传值(重复)

2015-11-08 14:12 323 查看
在一个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"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jit.jack_ming.button01" >

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<span style="color:#FF0000;"><activity android:name=".DetailActivity"/></span> //配置的清单。
</application>

</manifest>在这里第一个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);
<span style="color:#FF0000;">intent.putExtra("index", ""+position);</span> //设置值传到下一个activity中,
startActivity(intent);

}在下一个activity中进行值的接受:
public class DetailActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main3);

<span style="color:#FF0000;"> String index = getIntent().getStringExtra("index"); //获得上一个activity传过来的值。
TextView tv_show = (TextView) findViewById(R.id.info); //获得页面的TextView。
tv_show.setText("点击了:" + index); //对页面的TextView进行赋值,显示。</span>

}
}
在第一个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();

<span style="color:#FF0000;">HashMap<String, Object> map = (HashMap<String, Object>) parent.getItemAtPosition(position);</span>//获得某个位置上的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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: