gpt4 book ai didi

java - 问题重新启动finish()ed的android Activity

转载 作者:行者123 更新时间:2023-12-03 17:44:59 24 4
gpt4 key购买 nike

我有两个android Activity ,两个 Activity 都有一个按钮。

Activity DetailsActivity是我的MAIN Activity 。

public class DetailsActivity extends Activity {

@Override
public void onCreate(Bundle bundle) {

super.onCreate(bundle);
setContentView(R.layout.details_activity_layout);
}

@Override
public void onResume() {

super.onResume();
}



public void gotoSubDetails(View view) {

Intent intent = new Intent(this, SubDetailsActivity.class);
startActivity(intent);
finish();
}
}

我的 SubDetailsActivity如下:
public class SubDetailsActivity extends Activity {

@Override
public void onCreate(Bundle bundle) {

super.onCreate(bundle);
setContentView(R.layout.sub_details_activity_layout);
}

@Override
public void onResume() {

super.onResume();
}



public void gotoDetails(View view) {

Intent intent = new Intent(this, DetailsActivity.class);
startActivity(intent); // Restarting the finish()ed activity here.
finish();
}
}

这就是我在 details_activity_layout.xml中提到 DetailsActivity.java的按钮的方式:
    <Button android:id="@+id/details_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/to_sub_details"
android:onClick="gotoSubDetails" />

这就是我在 sub_details_activity_layout.xml中为 SubDetailsActivity.java提到我的按钮的方式:
    <Button android:id="@+id/sub_details_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/back_to_details"
android:onClick="gotoDetails" />

这是我在 AndroidManifest.xml中的两个 Activity :
    <activity android:name="DetailsActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name="SubDetailsActivity">
</activity>

当我单击 button中的 DetailsActivity时, Activity finish()正确运行,并且 SubDetailsActivity启动。

但是,当我单击 button中的 SubDetailsActivity返回 finish()DetailsActivity时,该应用立即在我的LG L90手机上崩溃。

我要去哪里错了?有什么帮助吗?请。

PS:
我无法发布log cat报告,因为我没有在Mac上进行测试,而是直接在手机上进行了测试。我没有模拟器。我正在终端上编译代码,并通过蓝牙在手机上传输 .apk文件。

编辑:
好了 friend 们。现在,这真的很有趣!

我删除了
android:onClick="gotoSubDetails"  


android:onClick="gotoDetails"  

分别来自我的 details_activity_layout.xmlsub_details_activity_layout.xml。然后,我在 android.widget.ButtonDetailsActivity.java中加载了 SubDetailsActivity.java,并在两者上都添加了 android.view.View.OnClickListener并覆盖了 onClick(View)方法。

这就是我在 DetailsActivity.java中所做的:
public class DetailsActivity extends Activity {

@Override
public void onCreate(Bundle bundle) {

super.onCreate(bundle);
setContentView(R.layout.details_activity_layout);

Button button = (Button)findViewById(R.id.details_submit);
button.setOnClickListener(new DetailsSubmitListener());
}

@Override
public void onResume() {

super.onResume();
}


public class DetailsSubmitListener implements OnClickListener {

@Override
public void onClick(View view) {

Intent intent = new Intent(this, SubDetailsActivity.class);
startActivity(intent);
finish();
}
}
}

这就是我在 SubDetailsActivity.java类中所做的事情:
public class SubDetailsActivity extends Activity {

@Override
public void onCreate(Bundle bundle) {

super.onCreate(bundle);
setContentView(R.layout.details_activity_layout);

Button button = (Button)findViewById(R.id.sub_details_submit);
button.setOnClickListener(new SubDetailsSubmitListener());
}

@Override
public void onResume() {

super.onResume();
}


public class SubDetailsSubmitListener implements OnClickListener {

@Override
public void onClick(View view) {

Intent intent = new Intent(this, DetailsActivity.class);
startActivity(intent);
finish();
}
}
}

这奇迹般地运作良好。

那么,布局文件中的 .xml属性出了什么问题?与 .java文件中的硬编码侦听器有何不同?这件事使我感到困惑。可以重新启动 finish()编辑的 Activity 。那就是我在程序更改中发现的。请对此有所了解。

最佳答案

阿迪亚

如果要像在您的案例中那样在两个 Activity 之间进行遍历,则永远不要完成“详细信息” Activity 。而是在未完成“详细信息” Activity 的情况下,启动“SubDetails” Activity 。如果您想回来,则无需编码。如果用户按下BACK按钮,则SubDetails Activity 将完成,并且DetailsActivity将成为前台。

完成一项 Activity 并重新启动它是不必要的开销。躲开它。如果绝对必要,请完成 Activity 。

另外,没有任何方法可以重新启动完成的 Activity 。

关于java - 问题重新启动finish()ed的android Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com