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

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

    }















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值