在android中的活动之间工作
好吧,我对安卓系统的开发还很陌生,四处寻找一个清晰的解释,但找不到太多。我会尽量把我的问题说清楚 基本上,假设我有2个活动,一个创建活动包含一个带有文本框的表单等(用户填写的信息),以及底部的创建按钮。我的第二个名为creates的活动在视觉上基本上是空的,直到用户使用Create活动中的表单创建了一些东西 因此,我有一个方法来确定在“创建”活动中单击“创建”按钮的时间在android中的活动之间工作,android,android-activity,Android,Android Activity,好吧,我对安卓系统的开发还很陌生,四处寻找一个清晰的解释,但找不到太多。我会尽量把我的问题说清楚 基本上,假设我有2个活动,一个创建活动包含一个带有文本框的表单等(用户填写的信息),以及底部的创建按钮。我的第二个名为creates的活动在视觉上基本上是空的,直到用户使用Create活动中的表单创建了一些东西 因此,我有一个方法来确定在“创建”活动中单击“创建”按钮的时间 public void create(View view){ Creations.make(info1, blah
public void create(View view){
Creations.make(info1, blah1, blah2, etc);
}
现在这个make()方法在creates活动中,它在该页面上绘制一个自定义视图,其中包含提交的信息,我希望在用户每次单击create活动中的create按钮时调用它。我知道除非make()是一个静态方法,否则我无法实现这一点,但除此之外我如何实现它呢?我知道我将不得不为我的创作活动制作一个对象,但是对于我想添加的每个新项目,我不需要为同一活动制作多个对象吗 基本上,您不需要创建活动的显式
对象
,只需使用apistartActivity()
启动活动即可
现在,就你而言
在CreateActivity
中会有一个方法onCreatePressed()
,如下所示
public void onCreatePressed(View v) {
Intent intent = new Intent(CreateActivity.this, CreationActivity.class);
intent.putExtra(KEY_INFO, info);
intent.putExtra(KEY_BLAH1, blah1);
.
.
CreateActivity.this.startActivity(intent);
}
在CreationActivity
中,您必须重写onCreate()
方法,如下所示
public void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
/* if info type is of int there is a method getIntExtra and so on,
* if it is a custom class then it must implement Serializable interface
* and there is method getSerializableExtra for this.
*/
InfoType info = intent.get<InfoType>Extra(KEY_INFO);
.
.
.
// setContentView(some_resource_id);
// inflate it with the data.
}
public void onCreate(Bundle savedInstanceState){
Intent=getIntent();
/*如果信息类型为int,则有一个方法getIntExtra等,
*若它是一个自定义类,那个么它必须实现可序列化接口
*还有一个方法getSerializableExtra。
*/
InfoType info=intent.getExtra(KEY\u info);
.
.
.
//setContentView(某些资源id);
//用数据把它膨胀起来。
}
你说你是Android新手。您是否了解活动
基本上是一个UI框架,只有在完全可见时才被视为处于运行状态?如果是这样,创建活动
将在何时以及如何开始?您应该在developer.android.com上阅读更多内容并完成教程。你偏离了轨道。您不应该将静态方法添加到活动中,而应该将值传递给具有意图的新活动
抱歉,我不够清楚,当用户通过按钮访问创建活动时,创建活动已启动。它是这样的(Creations Create Form),因此您可以始终从主页访问Creations活动,也可以通过Create Form Activitiy添加到该活动中。我可以看到您使用向CreationActivity发送数据的意图在做什么。但是现在假设我返回到Create表单并提交另一组数据,我希望在CreationActivity中添加新数据,而不覆盖以前的数据,因此我基本上是添加一组新数据,使用此方法有效吗?为此,当返回时,您必须将旧的
数据存储到类似的位置。文件、共享首选项或数据库,以便您可以在CreationActivity中显示旧的
以及新的
数据。我建议你去看看这个