2013-04-16 33 views
-1

我正在嘗試使用alertdialog來允許用戶按下ok按鈕並打開一個新的活動。下面是我的代碼:使用AlertDialog按鈕開始新的活動

我的第一個活動

AlertDialog.Builder dialog= new AlertDialog.Builder(context); 
       dialog.setTitle("Welcome"); 
       dialog.setMessage("Please click ok"); 
       dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         Intent intent = new Intent("com.thewildOnz.myResult"); 
        startActivity(intent); 
        } 
       }); 
       dialog.show();  

新的活動

public class myResult extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.result); 

清單:

</activity> 
      <activity 
     android:name=".myResult" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="com.thewildOnz.myResult" /> 

      <category android:name="android.intent.category.DEFUALT" /> 
     </intent-filter> 
    </activity> 

但是我得到的錯誤:

java.lang.NullPointerException 

我錯過了什麼?

+1

你什麼行上的異常? – Codeman

+0

startActivity(intent) – user2076033

+0

請顯示完整堆棧跟蹤 –

回答

2

您需要撥打.create()在您的AlertDialog

AlertDialog.Builder builder= new AlertDialog.Builder(context); 
builder.setTitle("Welcome"); 
builder.setMessage("Please click ok"); 
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() 
{ 
    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     Intent intent = new Intent("com.thewildOnz.myResult"); 
     startActivity(intent); 
    } 
}); 
AlertDialog dialog = builder.create(); 
dialog.show(); 

您也可能錯誤地使用了新的Intent("")。除非您將"com.thewildOnz.myResult"定義爲動作,否則將失敗。

您應該使用這樣的:

Intent intent = new Intent(this, com.thewildOnz.myResult.class); 
+0

謝謝。當我這樣做: 新(意圖(this,.....)) 它不允許我有這個作爲輸入,任何想法爲什麼? – user2076033

+0

不能讓它悲傷地工作。不過謝謝。 – user2076033

+0

無法啓動它?什麼不工作? – Codeman

0

也許你有一個錯字是DEFAULT

 <category android:name="android.intent.category.DEFUALT" /> 
+0

好點!謝謝 – user2076033