저는 프로그래밍에있어 초보자이며 스스로 해결할 수없는 문제에 직면 해 있습니다. 내가 뭘하고, 작성/두 번째 활동에 EditText에 넣어 String과 MainActivity의 ListView에 무언가를 추가합니다. 활동 2의 버튼을 누를 때마다 내 앱이 작동을 멈 춥니 다. 내가 뭘 잘못하고 있는지 모릅니다. 그래서 도움을 많이 받으실 수 있습니다. 내 코드를 게시 할 수 있습니다 :ListView with Button 및 setResult
MainActivity :
public class Activity_2 extends AppCompatActivity {
EditText etact;
Button addbtn;
String eventname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2_layout);
addbtn = (Button) findViewById(R.id.addbtn);
etact = (EditText) findViewById(R.id.etact);
if (etact.getText().toString()!= ""){
eventname = etact.getText().toString();
}
addbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (eventname == ""){
Toast.makeText(Activity_2.this,
"Make Input first", Toast.LENGTH_LONG).show();
}
else {
Intent intentback = new Intent(Activity_2.this, MainActivity.class);
intentback.putExtra("nameEvent", eventname);
setResult(RESULT_OK);
finish();
}
}
});
}
}
편집 : 로그 캣
FATAL 입력, Activity_2에 이름을 나에게 던져 생각
public class MainActivity extends AppCompatActivity { EditText et; ListView lv; ArrayList<String> arrayList; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.et); lv = (ListView) findViewById(R.id.lv); arrayList = new ArrayList<String>(); adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, arrayList); lv.setAdapter(adapter); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent1 = new Intent(MainActivity.this , Activity_2.class); startActivityForResult(intent1, 1);//Throws me into Act2 } }); } public void onActivityResult(int requestCode, int resultCode, Intent intentback){ super.onActivityResult(requestCode, resultCode, intentback); if (requestCode == 1){ if(resultCode == RESULT_OK){ String resultback = intentback.getStringExtra("nameEvent"); arrayList.add(intentback.getStringExtra("nameEvent")); adapter.notifyDataSetChanged(); } } } }
예외 : 주 프로세스 : com.example.robert.againagainagaian, PID : 3857 java.lang.RuntimeException : 결과 배달 실패 {com.example.robert.againagainagaian/com.example.robert.againagainagaian.MainActivity}에 대한 ResultInfo {who = null, request = 1, result = -1, data = null} : java.lang .NullPointerException : 가상 메소드를 호출하려고 시도했습니다. null null에 android.content.Intent.getStringExtra (java.lang.String) '객체 참조가 android.app.ActivityThread.deliverResults (ActivityThread.java : 4053) android.app.ActivityThread $ H.handleMessage에서 android.app.ActivityThread.-wrap20에서 android.app.ActivityThread.handleSendResult (ActivityThread.java:4096) (ActivityThread.java) (ActivityThread.java에서 : 1516) android.os.Handler.dis patchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6077) at java.lang.reflect.Method. (Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:756)에서 을 발생 시켰습니다. : java.lang.NullPointerException : 가상 메소드를 호출하려고 시도했습니다. 'null의 경우 android.content.Intent.getStringExtra (java.lang.String)'객체 참조가 인 경우 com.example.robert.againagainagaian .MainActivity.onActivityResult (MainActivity.java:55) android.app.Activity.dispatchActivityResult ( android.app.ActivityThread.handleSendResult (ActivityThread.java:4096에서 android.app.ActivityThread.deliverResults (ActivityThread.java:4049)) android.app.ActivityThread.-wrap20에서 에서 Activity.java:6915) (ActivityThread .java) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1516) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java) : 154) at android.app.ActivityThread.main (ActivityThread.java:6077) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ActivityThread.java : ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:866)자바 : 널 (null)에 대한 756)
쇼 로그 캣처럼 SecondActivity에서 의도에서
onActivityResult
설정 결과 데이터에 액세스하는 동안하시기 바랍니다. –
'(eventname == "")'wrong..it이'if (eventname.equals (""))' –
이어야합니다. 편집 : MainActivity의 EditText를 무시하면됩니다. 감사합니다 – ForeverNewbie