메인 액티비티에서 특정 버튼 클릭하면 인텐트를 이용해서 주소록 을 가져온 다음에
다이얼로그에 그값을 대입시키고 다이얼로그에서 인텐트로 메인액티비티에 보내줘서 정보를 변경하려 하는데 값이 자꾸 널포인트가 뜨는데 이유를 모르겠습니다.
Main
public class MainActivity extends Activity {
Custom_Dial Dial;
ImageView a;
TextView b;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Dial= new Custom_Dial(this);
a=(ImageView)findViewById(R.id.PIC);
b=(TextView)findViewById(R.id.NAME);
}
public void mOnClick(View v)
{
switch (v.getId())
{
case R.id.PIC:
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setData(ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent,0);
break;
}
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
if(resultCode == RESULT_OK)
{
Cursor cursor = getContentResolver().query(data.getData(),new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
,ContactsContract.CommonDataKinds.Phone.NUMBER},null,null,null);
cursor.moveToFirst();
Dial.Name.setText("이름:"+cursor.getString(0));
Dial.Phone.setText("Tel: "+cursor.getString(1));
cursor.close();
Dial.show();
intent=getIntent();
b.setText(intent.getExtras().getString("NAME"));
}
super.onActivityResult(requestCode,resultCode,data);
}
}
dialLog
public class Custom_Dial extends Dialog implements View.OnClickListener {
ImageView img;
Button Okay,Cancel;
TextView Name,Phone;
Intent intent;
public Custom_Dial(Context context)
{
super(context);
Log.e("DialogShow","DialLog_Show");
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dial);
img = (ImageView)findViewById(R.id.PIC);
Okay = (Button)findViewById(R.id.OKAY_BTN);
Cancel = (Button)findViewById(R.id.CANCEL_BTN);
Name = (TextView)findViewById(R.id.NAME);
Phone = (TextView)findViewById(R.id.PHONE);
img.setOnClickListener(this);
Okay.setOnClickListener(this);
Cancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id. PIC:
Log.e("DialogClick","Click");
break;
case R.id.OKAY_BTN:
intent = new Intent(getContext(),MainActivity.class);
intent.putExtra("NAME",Name.toString());
intent.putExtra("PHONE",Phone.toString());
dismiss();
break;
case R.id.CANCEL_BTN: dismiss(); break;
}
}
}
Logcat
Caused by: java.lang.NullPointerException
at kr.qoop.customdialog.MainActivity.onActivityResult(MainActivity.java:69)