2013-03-21 5 views
0

그래서 방금 시작한 활동을 살펴 보았습니다. 나는 내가 원하는 것을 얻었다고 생각했다. 모든 오류를 수정했지만 지금은 응용 프로그램을 테스트 할 때 충돌이 발생합니다. 나는 안드로이드와 이클립스에 처음이다. 그래서 나는 정확히 무슨 일이 일어나고 있는지 확신하지 못한다. 여기 내 MainActivity.java가 있습니다 :테스트 할 때 충돌이 발생합니다.

 import android.os.Bundle; 
     import android.app.Activity; 
     import android.content.Intent; 
     import android.util.Log; 
     import android.view.Menu; 
     import android.view.MenuInflater; 
     import android.view.View; 
     import android.widget.Button; 
     import android.widget.EditText; 
     import android.widget.TextView; 

    public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent = getIntent(); 
    String info = intent.getStringExtra("info_key"); 
    TextView text = (TextView) findViewById(R.id.nametext); 
    text.setText(info); 
} 


//opens a new activity. 
public void openAddItem (View v){ 
    Intent intent = new Intent (this, Additem.class); 
    startActivity(intent); 
     } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

    } 

다음은 두 번째 활동입니다. Additem.java :

package com.grocerylist; 

    import android.os.Bundle; 
    import android.app.Activity; 
    import android.content.Intent; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    public class Additem extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_additem); 

} 


public void additem (View v){ 
    EditText text = (EditText)findViewById(R.id.itemname); 
    String info = text.getText().toString(); 
    Intent intent = new Intent(this, MainActivity.class); 
    intent.putExtra("info_key", info); 
    startActivity(intent); 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_additem, menu); 
    return true; 
} 

    } 

감사합니다, 나는 내 아이디의를 배치 한 경우 문제가있다 확실 해요. 내가 볼

+0

게시하여 로그 캣을 시작하는 데 도움이 될 수 있습니다, these tutorials를 보는 것이 좋습니다. 사실, 일단 logcat을 발견하면, 좋은 기회가 있습니다, 직접 고칠 수 있습니다;) – 323go

+0

어디에서 openAdditem() 메소드를 호출하고 왜 뷰를 전달합니까? 앱을 실행하면 어떤 활동이 시작됩니까? LogCat 출력을 게시하십시오. LogCat을 아직 보지 못했다면 Window - Show View - LogCat – Droidman

+0

으로 가십시오. 문제가있는 곳을 보여줍니다. 내 MainActivity.java에있는 28 번째 줄, 문제가 보이지 않는다 : text.setText (info). 너? @ 323go –

답변

1

첫 번째 문제는이 첫 번째 Activity이 "수"할 Intent이 없습니다 여기

Intent intent = getIntent(); 
    String info = intent.getStringExtra("info_key"); 
    TextView text = (TextView) findViewById(R.id.nametext); 
    text.setText(info); 

입니다. 이는 Intent으로 Activity을 시작하고 extras을 보낼 때 사용됩니다. 따라서 당연히 infonull입니다. 두 번째 Activity에서 앱을 만들었지 만 앱을 처음 실행할 때가 아닙니다. 첫 번째 Activity 당신이 openAddItem()를 호출 할 경우 또한, 첫 번째 Activity

두 번째에 startActivityForResult을 사용으로 확인 할 수 있습니다, 나는 볼 수 없습니다. Button 일 수도 있지만 아무 것도 보지 않습니다. Buttons

Android 프레임 워크의 기본 사항에 대한 핵심적인 이해가 누락 된 것처럼 보입니다. 아직 처음부터 끝내지 않았다면 Docs Here으로 시작하는 것이 좋습니다. 당신 또한

에 행운이

Intent intent = new Intent (this, Additem.class); 

내가 이미 codeMagic 언급 한 볼이

Intent intent = new Intent (MainActivity.this, Additem.class); 
+0

@Kyle K이 도움을 받았습니까? – codeMagic

+0

예, 고맙습니다! @codeMagic –

+0

@KyleK 내가 도울 수있어서 기쁩니다! 친절하게 올바른 답을 수락하고 유사한 문제가있는 다른 사람들이 쉽게 알 수 있습니다. – codeMagic

-2

첫 번째 문제이어야한다.

두 번째 것은 : 당신은 그냥 onCreate() 다른 Activity을 시작하여 메서드를 호출 할 경우, 당신은 스택에서 그 Activities의 의사 무한한 수를 얻을 것이다 앱 충돌합니다.

은 당신이

관련 문제