#android
#Android
Вопрос:
Я новичок в разработке приложений для Android.Я разработал базовое приложение и обнаружил ошибку нулевой точки в определенной строке и добавил if(instance!=null){сделай что-нибудь} .Но часть внутри if, т.е. Часть do something, никогда не выполняется.Как я могу это исправить? Так что мое приложение работает свойство
public class MainActivity extends ActionBarActivity {
private Button btn1;
private ImageView imagetoshow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button)findViewById(R.id.button1);
imagetoshow=(ImageView)findViewById(R.id.imageView1);
if(btn1!=null){
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imagetoshow.setImageResource(R.drawable.image1);
}
});
}
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
}
Комментарии:
1. использовать
try { } catch (Exception e) {}
2. возможно, сначала инициализируйте его 🙂 или присвоите значение.
3. Опубликуйте свой код вместе с ошибкой Logcat
4. Эй, ребята, это не традиция гостеприимства — обслуживать новых пользователей негативными бомбами!!!
5. Какое значение я могу инициализировать переменной типа Button?
Ответ №1:
Код не выполняется, потому что ваше if (instance != null)
утверждение неверно. Если вы хотите, чтобы этот код выполнялся, и вы не хотите иметь исключение NullPointerException, тогда инициализируйте любую переменную, которая равна нулю (т. Е. Присвоите ей значение). На этом этапе вы можете удалить нулевую проверку, и она больше не понадобится.
Опубликуйте свой код, если хотите получить более подробный ответ.
Комментарии:
1. Какое значение я могу инициализировать переменной типа Button?
2. Кнопка button = (Кнопка) findViewById(R.id.buttonId)
3. Я предоставил код, пожалуйста, просмотрите его. По умолчанию у меня есть относительный макет в fragment_main.xml и линейный макет в activity_main.xml.Как я мог бы привести линейный макет к activy_main.xml ?
Ответ №2:
Убедитесь, что вы связали соответствующий файл макета со своим классом Activity, а также объявили свою активность в «Android Manifest». Если это не так, отправьте мне свой код, чтобы я мог помочь вам отследить проблему.
Комментарии:
1. кажется, у него есть R.layout.activity_main