Вам необходимо вызвать setContentView()
в вашем методе onCreate()
перед использованием findViewById()
.Вот пример выполнения этого ...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set this to whatever your layout is
setContentView(R.layout.main);
// Now you can call the activity's findViewById() method...
TextView nt = (TextView)findViewById(R.id.notify);
}
Редактировать Ваша переменная nt
не находится в той же области, что и ваш метод addNotification()
.Исправьте это, сделав его членом класса или передав его в метод addNotification()
.
Кроме того, для сравнения строк вам действительно следует использовать .equals()
, а не ==
.==
проверяет, является ли это один и тот же объект, тогда как .equals()
будет сопоставлять текст между двумя строками.
Редактировать (снова)
Я собираюсьЕсли предположить, что у вас уже есть nt
на уровне класса, это никак не скомпилируется, если нет.Судя по тому, что вы сказали, похоже, ваша проблема связана с тем, что вы создаете отдельную переменную nt
в вашем onCreate()
.Измените ваш код на что-то вроде следующего (я удалил неважные части).
public class YourActivity extends Activity {
private TextView nt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Do not create a new instance, use the one you have...
nt = (TextView)findViewById(R.id.notify);
// Do whatever you were doing...
}
public void addNotification() {
// This *should* work...
if (nt.getText().equals("yes")) {
// Do whatever you were doing...
}
else if (nt.getText().equals("no")) {
// Do nothing...
}
}
}
Если это не поможет вам начать работу, то я не уверен, в чем проблема.Если это не решит вашу проблему, вы должны опубликовать то, что вы получите от вашего logcat
.