android - 如何关闭 View 类以返回到父 Activity ?

标签 android view android-activity

我有一个使用 setContentView();

启动 View 类 (MyView1) 的 Activity (MyActivity1)

在 MyView1 中,在用 Canvas 绘制一些图之后,我希望能够返回到 MyActivity1。我试过 MyView1.this.setVisibility(View.INVISIBLE)View.GONE 但这些只会让屏幕空白。

我也试过 ((Activity)getContext()).finish(); 但它会产生运行时错误。

我应该说后退按钮工作正常,按下它会关闭 MyView1 并恢复 Activity 。但是,我希望能够在 View 内以编程方式执行此操作。例如,我希望当用户触摸 View 类中屏幕的特定部分时,它会自行关闭并带回父 Activity 。我应该如何实现?

这似乎是一项非常简单的任务!但是在搜索了类似的问题后我找不到答案。

下面是 MyActivity1 启动 View 的方式:

public class MyActivity1 extends Activity {

MyView1 View1;


public void Start_Button(View view)
{

    Context ctx = getApplicationContext();
    View1= new MyView1(ctx, null);
    setContentView(View1);



}
}

以及 MyView1 中我想写一些东西来关闭自身并恢复 MyActivity1 的部分:

public class MyView1 extends View {

 static Context mycontext;

  public MyView1(Context context, AttributeSet attrs) {

    super(context, attrs);
            mycontext=context;

      }


   @Override
     public boolean onTouchEvent(MotionEvent event) {

         this.setVisibility(View.INVISIBLE);

        ((Activity) mycontext).setContentView(R.layout.activity_myactivity1);
        // This gives runtime error

        }
}

最佳答案

public public MyView1(Activity activity, AttributeSet attrs) {
    super(context, attrs);
            myActivity=activity;

      }  

 public void Start_Button(View view)
{

View1= new MyView1(this, null);
setContentView(View1);

}

只需调用 myActivity.setContentView(R.layout.original_layout_for_MyActivity1);

关于android - 如何关闭 View 类以返回到父 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16723614/

相关文章:

android - 将 ComposeView 添加到 PopupWindow 的 contentView 崩溃

java - Android ListView 自定义行

android - 无法启动 Activity 二进制 XML 文件错误膨胀类,在 Dex 路径列表中找不到类 - Android

android - onSaveInstanceState 和 finish()

安卓 Activity 堆栈

java - 新的联系人类和错误 - 应用程序已停止 - Android

windows - MVVM 引用程序集

iOS 开发者点击按钮,屏幕不会调用新 View

Django:在重定向后保留捕获的参数

android - 如何在android中完成所有 Activity 并关闭应用程序?