액션바에서 아이콘 클릭시 EditText가 포함된 다이얼로그를 띄우고
EditText를 입력한 후 확인을 누르면
EditText의 값을 다른 액비티비에 전달하는 부분을 구현 하고 있습니다.
그런데 확인을 누르면 화면이 멈추면서 앱이 종료 됩니다.
EditText 객체를 주석처리하고 액티비티 전환만 시키면 잘돌아가는데
객체를 선언하고 값을 넣어주는 경우에만 에러가 발생합니다.
하루종일 고민 했는데 해결이 안됩니다 도와주세요 ㅠ
액션바의 아이템 클릭 코드(다이얼로그 출력)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
String text = null;
switch(item.getItemId()){
case android.R.id.home:
text = "Application icon";
break;
case R.id.item1:
break;
case R.id.action_search:
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.layout_root));
AlertDialog.Builder aDialog = new AlertDialog.Builder(SearchActivity.this);
aDialog.setTitle("검색 창");
aDialog.setView(layout);
aDialog.setPositiveButton("검색", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
EditText tv = (EditText)findViewById(R.id.text);
String message = tv.getText().toString();
flag = 0;
intent = new Intent(SearchActivity.this, SearchListActivity.class);
// intent.putExtra("Message", message);
intent.putExtra("flag", flag);
startActivity(intent);
finish();
}
});
aDialog.setNegativeButton("취소", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog ad = aDialog.create();
ad.show();
}
return true;
}
전환 되는 액티비티
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.searchlist);
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0caaf1")));
Intent intent = getIntent();
//플래그에 따라 다른 xml주소 불러오기
int flag = intent.getExtras().getInt("flag");
String code;
String Message;
if(flag==1){
//SearchActivity에서 code 값 받음
code = intent.getExtras().getString("code");
//SearchActivity에서 전달 받은 code 값에 맞는 xml을 받아온다
rssFeed = "http://pro87.cafe24.com/getSearchProductList.do?classifyCode="+code;
}else if(flag==0){
//SearchActivity에서 Message 값 받음
Message = intent.getExtras().getString("Message");
//SearchActivity에서 전달 받은 Message 값에 맞는 xml을 받아온다
rssFeed = "http://pro87.cafe24.com/getSearchProductList.do?productName="+Message;
}
에러코드 입니다.
07-07 18:56:43.019: E/AndroidRuntime(10960): FATAL EXCEPTION: main
07-07 18:56:43.019: E/AndroidRuntime(10960): java.lang.NullPointerException
07-07 18:56:43.019: E/AndroidRuntime(10960): at com.example.project.SearchActivity$3.onClick(SearchActivity.java:355)
07-07 18:56:43.019: E/AndroidRuntime(10960): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
07-07 18:56:43.019: E/AndroidRuntime(10960): at android.os.Handler.dispatchMessage(Handler.java:99)
07-07 18:56:43.019: E/AndroidRuntime(10960): at android.os.Looper.loop(Looper.java:137)
07-07 18:56:43.019: E/AndroidRuntime(10960): at android.app.ActivityThread.main(ActivityThread.java:4921)
07-07 18:56:43.019: E/AndroidRuntime(10960): at java.lang.reflect.Method.invokeNative(Native Method)
07-07 18:56:43.019: E/AndroidRuntime(10960): at java.lang.reflect.Method.invoke(Method.java:511)
07-07 18:56:43.019: E/AndroidRuntime(10960): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
07-07 18:56:43.019: E/AndroidRuntime(10960): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
07-07 18:56:43.019: E/AndroidRuntime(10960): at dalvik.system.NativeStart.main(Native Method)