2011-07-18 7 views
1

getHotelName()setHotelName()을 사용하여 애플리케이션에 데이터를 저장 한 다음 액세스합니다. Launcher로 분류 된 내 주요 활동에서는이 활동에서 방법과 getApplication()이 작동합니다. 하지만 주요 액티비티에서 호출되는 다른 액티비티로부터 getApplication에 접근하려고 할 때 강제 종료 오류가 발생한다.Android getapplication() data

이 내 매니페스트 파일입니다,

<application android:icon="@drawable/icon" android:label="@string/app_short_name" android:name="RestaurantNetwork" android:allowClearUserData="true" android:theme="@android:style/Theme.Black" > 

    <activity android:name="RestaurantActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name="NetworkCommunication"></activity> 

    <uses-permission android:name="android.permission.INTERNET" /> 

</application> 

주요 활동에서

RestaurantNetwork application = (RestaurantNetwork) getApplication(); 
application.setHotelName(this.hotelname.getText().toString()); 
Intent intent = new Intent(view.getContext(), NetworkCommunication.class); 
startActivity(intent); 

내가 intent.extra를 사용하여 해결

public class NetworkCommunication extends Activity { 
RestaurantNetwork application = (RestaurantNetwork) getApplication(); 
String hotelname = application.getHotelName().toString(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

답변

1

NetworkCommunication 활동에서 예를 내가했다 getApplication()을 제거합니다. 여전히 이전 방법에서 오류 내 두 번째 활동

내 주요 활동에

this.hotelname = (EditText) findViewById(R.id.HotelName); 

//RestaurantNetwork application = (RestaurantNetwork)getApplication(); 
//application.setHotelName(this.hotelname.getText().toString()); 

Intent intent = new Intent(view.getContext(), NetworkCommunication.class); 
intent.putExtra("hotelName",this.hotelname.getText().toString()); 
startActivity(intent); 

가 이유를 알고 싶습니다

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.searchresults); 

     String value = null; 

     Bundle extras = getIntent().getExtras(); 
     if(extras !=null) 
     { 
      value = extras.getString("hotelName"); 
     } 

     Toast.makeText(getApplicationContext(),value, Toast.LENGTH_SHORT).show();