2016-03-21 14 views
0

私のクラスでstartActivity()関数を使用することができなくなりました。しかし、私はこのクラスから新しい活動を開かなければなりません。ここでアンドロイドのダイアログボックスを使用して新しいアクティビティを開くにはどうすればいいですか?

が私のクラスであると私は

package com.fva_001.flashvsarrow.com.fva_001; 

import android.app.Activity; 
import android.app.Dialog; 
import android.graphics.drawable.ColorDrawable; 
import android.os.*; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 


public class MapFoundDialog extends Dialog implements android.view.View.OnClickListener { 

public Activity c; 
public Dialog d; 
public Button yes; 

public MapFoundDialog(Activity a) { 
    super(a); 
    // TODO Auto-generated constructor stub 
    this.c = a; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
    setContentView(R.layout.dialog_map_found); 
    yes = (Button) findViewById(R.id.btn_hide_dialog_map_found); 
    yes.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    new ButtonClick(getContext(), v); 
    switch (v.getId()) { 
     case R.id.btn_map_open: 
      // i want to open a new activity from here.... 

      break; 
     case R.id.btn_hide_dialog_map_found: 
      dismiss(); 
      break; 
     default: 
      break; 
    } 
    dismiss(); 
} 
} 
+0

を、あなたは、このケースが実行されていることを確認していますか? –

答えて

0

まず以下のように定義され、このクラスではonClickイベントを使用して新しいアクティビティを開きたい...私を助けてください、私は通過を示唆していますそれはアクティビティリークを引き起こすかもしれないので、ダイアログへのアクティビティは深刻なパフォーマンス上の問題です!

なぜアクティビティをダイアログに渡すのですか? ApplicationContextを渡すことができます。

は、このコードを使用します。

public class MapFoundDialog extends Dialog implements android.view.View.OnClickListener { 

public Context c; 
public Dialog d; 
public Button yes; 

public MapFoundDialog(Context c) { 
    super(c); 
    // TODO Auto-generated constructor stub 
    this.c = c.getApplicationContext(); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
    setContentView(R.layout.dialog_map_found); 
    yes = (Button) findViewById(R.id.btn_hide_dialog_map_found); 
    yes.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    new ButtonClick(c, v); 
    switch (v.getId()) { 
     case R.id.btn_map_open: 
      // i want to open a new activity from here.... 
      Intent intent = new Intent(c, NewActivity.class); 
      c.startActivity(intent); 
      break; 

     case R.id.btn_hide_dialog_map_found: 
      dismiss(); 
      break; 
     default: 
      break; 
    } 
    dismiss(); 
} 
} 
+0

ありがとうございます。それは私に非常に役立ちます.... –

+0

その有用な場合。私の答えをアップしてください:-) –

関連する問題