here is the error log
アンドロイド:私はアンドロイドで初心者とその私の最初のアプリケーションをm個
をクラッシュアンドロイドアラートダイアログ内のメソッドを呼び出すと、私は、ユーザーのためのオプションを含めることができるようにから連絡先を選択するために私のプロジェクトで警告ダイアログを使用したいです電話機の連絡先またはEditTextビューで電話番号を入力してください
のメソッドを呼び出した後にアプリケーションがクラッシュすると、setPositiveButton ClickListenerのブロックブロックが表示され、androidRunTime:NullPointerExceptionのエラーが表示されます。
ここに私のcontact_main.javaアクティビティコードがあります。
誰でも助けてください!
事前のおかげで
package com.example.ghaznavi.contacts;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.text.method.PasswordTransformationMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Toast;
public class Contact_main extends Activity {
Button btnAlertDialog;
Settings mSettings = new Settings();
private static final int CONTACT_PICKER_FOR_ALLOWED_LIST_RESULT = 301;
View mActiveView = null;
Activity mActivity = null;
Context mContext = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact_main);
btnAlertDialog = (Button) findViewById(R.id.btnAdd);
btnAlertDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
contactPickerDialog();
}
});
}
public void contactPickerDialog() {
LayoutInflater inflater = this.getLayoutInflater();
final View alertLayout = inflater.inflate(R.layout.contact_number_input_options, null);
final AlertDialog.Builder alert = new AlertDialog.Builder(Contact_main.this).setTitle("Add Contact Number");
alert.setView(alertLayout);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface paramAnanymous, int which) {
String str = ((EditText) alertLayout.findViewById(R.id.typed_number_input)).getText().toString();
if ((str == null) || (str.length() < 3)) {
Toast.makeText(Contact_main.this.getApplicationContext(), str.toString(), Toast.LENGTH_SHORT).show();
paramAnanymous.dismiss();
return;
} else {
Contact_main.this.mSettings.Initialize(Contact_main.this.mActivity);
Contact_main.this.mSettings.AddtoContactList(null, str);
Contact_main.this.mSettings.SaveSettings();
Toast.makeText(Contact_main.this.getApplicationContext(), "it works", Toast.LENGTH_SHORT).show();
paramAnanymous.dismiss();
return;
}
}
}
);
final AlertDialog alertDialog = alert.create();
alertDialog.show();
((Button)alertLayout.findViewById(R.id.contact_input)).
setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
if ((alertDialog != null) && (alertDialog.isShowing())) {
alertDialog.dismiss();
}
Intent localIntent = new Intent("android.intent.action.PICK", ContactsContract.Contacts.CONTENT_URI);
Contact_main.this.startActivityForResult(localIntent, 301);
return;
} catch (Exception localException) {
alertDialog.dismiss();
}
return;
}
}
);
}
}
'mSettings'はどこで初期化しますか?あなたは 'EditText'からテキストを得ることができるということを理解していますか? – 0xDEADC0DE
@ 0xDEADC0DEはい私はEditTextのテキストを得ることができ、私はこの設定を宣言しましたmSettings = new Settings(); contact_mainブロックが開始した後 – Angel
完全に投稿 'Contact_main' –