2013-06-24 2 views
1

Могу ли я передать строку на другую активность в Android без использования намерений? У меня проблемы с намерениями ... Они не всегда работают! Итак, есть ли другой способ?Передача строки в другую активность без использования намерений в Android

То, что я пытался с намерениями:

String id = intent.getStringExtra("id"); 
String name = intent.getStringExtra("name"); 

Но он получает два вида строки каждый раз, когда я начинаю свою деятельность. Первый раз отличается от других. Могу ли я передать это второе действие любым другим вещам без использования намерений?

+1

За исключением использования 'SharedPreferences' или базы данных для сохранения строк, ответ отрицательный, нет другого пути. Также, если вы не можете заставить вещи работать с помощью дополнительных функций в «Intent», используемых для запуска «Activity», то вы делаете что-то не так - это не ошибка в том, как работает «Intents». Почтовый код и объясните, что происходит - две строки, которые вы показали, ничего не говорят нам. – Squonk

+0

попробуйте использовать общие настройки. Проверьте это, это поможет много. http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values ​​ – lolliloop

+0

Сквонк, проблема в том, что мой код был более 2000 строк, поэтому Я не мог поделиться им здесь, но я спросил его здесь, потому что я думал, что могут быть лучшие способы, чем использовать намерение, которое, как вы сказали, неверно ... –

ответ

4

Есть и другие способы, но дополнительные возможности Intent - это путь. Они на самом деле отлично работают всегда :) Лучше остановиться на этом пути и научиться правильно использовать намерения.

Пример при отправке строки на другой вид деятельности:

Intent intent = new Intent(this, SecondActivity.class); 
    intent.putExtra("aKey", value); 
    startActivity(intent); 

и извлечения его во второй деятельности.

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
... 
    Intent i = getIntent(); 
    if (i.hasExtra("aKey")){ 
     String value = i.getStringExtra("aKey"); 
    } 
} 

Просто продолжайте пытаться получить это право.

+0

спасибо, я думаю, это единственный способ пойти, и я должны получить это право. проблема заключается в том, что теперь, когда мой код очень длинный и сложный, очень сложно отлаживать, почему намерение не работает правильно и, что более важно, почему это не работает правильно только в первый раз! –