最近又在开始复习(其实就是在重学啊,都TM忘了啊)Activity的一些操作,今天刚又看了一次极客学院的视频,作为一次记录,同时也算作一次小结。好了,废话不多说,在Activity之间进行值传递,通常用两种方法,对于数据量少的可以进行简单值传递,此时会用到Intent这个类,基本使用方法看以下代码:
主Activity:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,TheOtherAty.class);
i.putExtra("name","zhangsan");//通过这一步将值传递出去
startActivity(i);
}
});
}
}
另一个Activity:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;
/**
* Created by renkai on 17/3/21.
*/
public class TheOtherAty extends Activity {
private TextView tv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.the_other_aty);
tv = (TextView) findViewById(R.id.et_text);
Intent i = getIntent();
tv.setText(i.getStringExtra("name"));
}
}
同时需要注册另一个Activity:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.renkai.intentdemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TheOtherAty"/>
</application>
</manifest>
要传递数据包的话,需要用到Bundle类,其传递过程和Intent相似,代码如下:
主Activity:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,TheOtherAty.class);
Bundle bundle = new Bundle();
bundle.putString("name","zhangsan");
// i.putExtra("name","zhangsan");//通过这一步将值传递出去
i.putExtras(bundle);//将Bundle传出去
startActivity(i);
}
});
}
}
另一个Activity:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;
/**
* Created by renkai on 17/3/21.
*/
public class TheOtherAty extends Activity {
private TextView tv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.the_other_aty);
tv = (TextView) findViewById(R.id.et_text);
Intent i = getIntent();
Bundle bundle = i.getExtras();//接收传入的数据包
tv.setText(String.format("name:",bundle.getString("name")));
// tv.setText(i.getStringExtra("name"));
}
}
参考极客学院Android学习视频