在Android应用程序中,当单击另一个活动中的按钮时,如何启动一个新活动(GUI),以及如何在这两个活动之间传递数据?
当前回答
Intent iinent= new Intent(Homeactivity.this,secondactivity.class);
startActivity(iinent);
其他回答
试试这个简单的方法。
startActivity(new Intent(MainActivity.this, SecondActivity.class));
科特林 2022
最简单的方法:
val a = Intent(this.context, BarcodeActivity::class.java)
a.putExtra("barcode", barcode)
startActivity(a)
在另一边(在我的情况下是BarcodeActivity):
val intent: Intent = intent
var data = intent.getStringExtra("barcode")
点击这里阅读更多
在第一个活动中编写代码。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondAcitvity.class);
//You can use String ,arraylist ,integer ,float and all data type.
intent.putExtra("Key","value");
startActivity(intent);
finish();
}
});
在secondActivity.class
String name = getIntent().getStringExtra("Key");
在android应用程序中,从另一个活动启动一个活动是非常常见的场景。 要启动一个活动,你需要一个Intent对象。
如何创建意图对象?
意图对象的构造函数中有两个形参
上下文 要启动的活动的名称。(或完整包名)
例子:
例如,如果你有两个活动,说HomeActivity和DetailActivity,你想从HomeActivity启动DetailActivity (HomeActivity—>DetailActivity)。
下面是演示如何启动DetailActivity的代码片段
HomeActivity。
Intent i = new Intent(HomeActivity.this,DetailActivity.class);
startActivity(i);
这样就做完了。
回到按钮点击部分。
Button button = (Button) findViewById(R.id.someid);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(HomeActivity.this,DetailActivity.class);
startActivity(i);
}
});
一个老问题,但如果目标是切换显示的页面,我只有一个活动,当我想切换页面时调用setContentView()(通常是响应用户单击按钮)。这允许我简单地从一个页面的内容调用到另一个页面。没有意图疯狂的额外包裹捆绑和任何试图来回传递数据。
我像往常一样在分辨率/布局中做了一堆页面,但没有为每个页面做一个活动。只需使用setContentView()来根据需要切换它们。
所以我的一个和唯一的onCreate()有:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater layoutInflater = getLayoutInflater();
final View mainPage = layoutInflater.inflate(R.layout.activity_main, null);
setContentView (mainPage);
Button openMenuButton = findViewById(R.id.openMenuButton);
final View menuPage = layoutInflatter.inflate(R.layout.menu_page, null);
Button someMenuButton = menuPage.findViewById(R.id.someMenuButton);
openMenuButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setContentView(menuPage);
}
});
someMenuButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
do-something-interesting;
setContentView(mainPage);
}
}
}
如果你想要返回按钮在退出应用程序之前返回内部页面,只需包装setContentView()将页面保存在一个小的页面堆栈中,并在onBackPressed()处理程序中弹出这些页面。
推荐文章
- apk (.apk)和应用程序包(.aab)的区别
- 如何设置超时在改造库?
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- TextView的字体大小在Android应用程序改变字体大小从本机设置
- 如何模拟Android杀死我的进程
- 禁用EditText闪烁光标
- Android Eclipse -无法找到*.apk
- 设置TextView文本从html格式的字符串资源在XML
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Android加载JS包失败
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的