1

を使用してビュー クラス (MyView1) を開始するアクティビティ (MyActivity1) があります。setContentView();

MyView1 では、キャンバスでいくつかの描画を行った後、MyActivity1 に戻れるようにしたいと考えています。MyView1.this.setVisibility(View.INVISIBLE)または試してみView.GONEましたが、これらは画面を空白にするだけです。

私も試し((Activity)getContext()).finish();ましたが、実行時エラーが発生します。

戻るボタンは正常に機能し、それを押すと MyView1 が閉じられ、アクティビティが元に戻ります。ただし、ビュー内でプログラムでそれを実行できるようにしたいと考えています。たとえば、ユーザーがビュークラスの画面の特定の部分に触れると、それ自体が閉じて親アクティビティに戻ります。これをどのように実装すればよいですか?

とても簡単な作業のようです!しかし、同様の質問を検索しても答えが見つかりませんでした。

MyActivity1 がビューを開始する方法は次のとおりです。

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

        }
}
4

1 に答える 1

1
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);

于 2013-05-23T21:53:41.227 に答える