Android (изменить строку в коде Java) - PullRequest
6 голосов
/ 02 января 2012

В папке / res / values ​​моего проекта Android у меня есть строка, на которую ссылается текстовое представление в моем XML-файле, я хочу изменить строку в моем Java-файле.

Как выниже можно увидеть в коде, что я сделал строковую переменную, а затем ниже, что я установил, на что установлена ​​строковая переменная, где находится строка.где я «здесь» поставил в коде, где я хочу изменить на строку в папке значений.но я не знаю, какой код использовать для его установки.

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

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

String string;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    counter = 0;
    add = (Button) findViewById(R.id.badd);
    sub = (Button) findViewById(R.id.bsub);
    reset = (Button) findViewById(R.id.breset);
    display = (TextView) findViewById(R.id.tvdisplay);
    string = (String) getString(R.string.counter);

    add.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
               ((///////////////here////////////////))
            counter++;

        }
    });

Ответы [ 3 ]

3 голосов
/ 02 января 2012

Вы не можете изменять текст, назначенный элементам <string> файла /res/values/strings.xml во время выполнения.Они являются константами настолько эффективно final.

Вы также не можете изменить XML-файл макета во время выполнения.Если вы создали макет с TextView, в атрибуте android:text которого задана некоторая начальная строка ресурса, то это, по сути, «начальное» значение, которое нельзя изменить на что-то другое во время выполнения.

2 голосов
/ 02 января 2012

Вы сказали нам много изменяющегося текста, но не сказали, каким должен быть текст.Мне нужно также угадать:

Файл strings.xml должен использоваться для текстов, которые могут изменяться для разных языков.Если вы просто хотите изменить текст счетчика, вам не следует делать это через strings.xml, так как числа универсальны:)

Попробуйте использовать это:

display.setText(String.valueOf(counter)); 
0 голосов
/ 02 января 2012

Вы захотите использовать метод setText () .

display.setText("text");
...