2015-04-02 2 views
0

У меня есть следующий код в моем OnCreate метод:Как использовать строку за пределами метода OnCreate

Bundle appleData = getIntent().getExtras(); 
    if(appleData==null) { 
     return; 
    } 
    String appleMessage = appleData.getString("appleMessage"); 

    final TextView texttest = (TextView) findViewById(R.id.texttest); 
    texttest.setText(appleMessage); 

Я хочу использовать строку, хранящуюся в appleMessage в другом методе на одной и той же деятельности, которая находится вне OnCreate , как я могу это сделать?

+0

Просто объявите переменную String вне метода onCreate. – Gagan

ответ

1

Вы должны объявить строковый атрибут вне OnCreate метода. Например:

private String appleMessage; 

Затем внутри OnCreate, просто измените эту строку:

appleMessage = appleData.getString("appleMessage"); 

Если вы хотите использовать его на другой метод, просто назвать его. Его значение будет значением, заданным для метода onCreated.

+0

Вы сделали это очень просто, спасибо @cristianorbs. Я проголосую, когда мой рейтинг будет достаточно высоким! – Antonio

+0

@ Простое Антонио не всегда лучше. Если вам это нужно только в одном другом методе, тогда не требуется его членская переменная. Вы можете просто передать его методу, который вам нужен. Вы должны пройти через документы Java и прочитать о сфере. В любом случае, вам не нужно ждать, чтобы проголосовать, вы можете принять ответ, который был наиболее полезен, щелкнув галочку рядом с ним. – codeMagic

+0

Спасибо, что сообщили мне @codeMagic, я просмотрю документы. – Antonio

1

Объявите его внутри своего класса и не в методе.

например.

private String appleMessage; 

и использовать методы получения и установки для его

public String getAppleMessage(){ 
return appleMessage; 
} 
+0

Почему геттеры и сеттеры? – Enrichman

+0

@Enrichman Потому что это хорошая практика, но не обязательно –

+0

Я знаю, но вы не подвергаете переменную снаружи. – Enrichman

3

Если вам это нужно в нескольких местах в классе, то вы можете сделать это переменную-член, объявив его вне метода

public class SomeClass extends Activity { 

    String appleMessage = "default text"; 

, но если вам это нужно только одним способом, вы можете просто передать его вызову метода, если вы вызываете метод в onCreate()

public void onCreate(Bundle bundle) { 
    ... 
    String appleMessage = appleData.getString("appleMessage"); 

    final TextView texttest = (TextView) findViewById(R.id.texttest); 
    texttest.setText(appleMessage); 

    // here 
    myMethod(appleMessage); 
} 

Предполагая, что myMethod принимает параметр String.

Я также предлагаю вам read the java docs и некоторые основные уроки, прежде чем продолжить работу с Android. Это сделает вашу жизнь намного проще.

2

Создайте переменную-член в классе, которая установлена ​​внутри метода onCreate.

См. here для получения дополнительной информации о переменных экземпляра/члена.

Итак:

class SomeClass extends Activity { 
    private String appleMessage; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ... 
     appleMessage = ... 
    } 

    public void otherMethod() { 
     Log.e("LOG", "Here is appleMessage: " + appleMessage); 
    } 
} 
Смежные вопросы