Android toString метод в статическом контексте - PullRequest
0 голосов
/ 24 февраля 2011

До сих пор я писал свое приложение для Android, просто вводя имена в методы.Теперь я разбираюсь с этим, прохожу и помещаю их в string.xml вместо этого и ссылаюсь на строку, используя:

txt.setText(this.getString(R.string.string_name));

Однако, при попытке использовать это в статическом контексте (в публичном static void),он не работает и выдает ошибку.

У кого-нибудь есть указания, как это преодолеть?Я довольно новичок в программировании на Java / Android, и я впервые столкнулся с этой проблемой.Любая помощь приветствуется.

Дополнительный код:

public static void ShowCatAddedAlert(Context con)
{
AlertDialog.Builder builder=new AlertDialog.Builder(con);
builder.setTitle("Add new Category");
builder.setIcon(android.R.drawable.ic_dialog_info);
DialogListner listner=new DialogListner();
builder.setMessage("Category Added successfully");
builder.setPositiveButton("ok", listner);

AlertDialog diag=builder.create();
diag.show();

}

Ответы [ 2 ]

4 голосов
/ 24 февраля 2011

Предполагая, что txt является TextView, тогда вы можете просто сделать txt.setText(R.string.string_name). Обычно вы можете ссылаться на строку по ее идентификатору ресурса, а не получать ее явно. Подробнее об этом http://developer.android.com/guide/topics/resources/string-resource.html

1 голос
/ 24 февраля 2011

Строковые ресурсы, как и все ресурсы, разрешаются из приложения из экземпляра Context (обычно это экземпляр Activity или экземпляр Application). В статическом контексте у вас нет никаких экземпляров, если вы не передаете их статическим методам.

Так или иначе, вам нужно что-то делать в нестатическом контексте. Либо вы храните копию объекта Resources и передаете ее статическим методам, либо вы передаете экземпляр Context, который способен разрешать ваши ресурсы, либо у вас есть статический объект Resources, который устанавливается в какой-то момент перед вашими статическими методами. позвонить.

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

...