Данные о геоприложении Android ()

1

Я использую getHotelName() и setHotelName() для хранения данных в приложении, а затем доступа к нему. В моей основной деятельности, которая классифицируется как Launcher, в этой работе getApplication() как методы, так и getApplication(). Но когда я пытаюсь получить доступ к getApplication из другого действия, которое вызывается из основного действия, оно вызывает сильную ошибку закрытия.

Это мой файл манифеста:

<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);

В деятельности NetworkCommunication

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

    @Override
    public void onCreate(Bundle savedInstanceState) {
Теги:
android-manifest

1 ответ

1
Лучший ответ

Я решил это с помощью намерения.extra, да, я должен был избавиться от 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();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню