У меня такая ошибка, это произошло при попытке поставить Spinner:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{mx.ipn.myprefect/mx.ipn.myprefect.Home}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) at android.app.ActivityThread.access$600(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:5225) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at mx.ipn.myprefect.Home.onCreate(Home.java:44) at android.app.Activity.performCreate(Activity.java:5133) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) at android.app.ActivityThread.access$600(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:5225) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) at dalvik.system.NativeStart.main(Native Method)
Это все мои домашние действия, но ошибка в методе onCreate:
public class Home extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener{
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
Spinner select = findViewById(R.id.select_group);
ArrayAdapter<String> aaGroup = new ArrayAdapter<String>(Home.this, android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.groups));
aaGroup.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
select.setAdapter(aaGroup);
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.contenedor, new BackHome()).commit();
}
public void mandar(View view){
toolbar = (Toolbar)findViewById(R.id.toolbar);
FragmentManager fm = getSupportFragmentManager();
MenuRedirect mr = new MenuRedirect();
Intent it;
switch (view.getId()){
case R.id.optionSchedule:
mr.setOption(1);
it = new Intent(Home.this, MenuRedirect.class);
startActivity(it);
break;
case R.id.optionReport:
mr.setOption(2);
it = new Intent(Home.this, MenuRedirect.class);
startActivity(it);
break;
case R.id.optionStudent:
mr.setOption(3);
it = new Intent(Home.this, MenuRedirect.class);
startActivity(it);
break;
default:
toolbar.setTitle(R.string.title_activity_home);
fm.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right)
.replace(R.id.contenedor, new BackHome()).commit();
break;
}
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
toolbar = (Toolbar)findViewById(R.id.toolbar);
int id = item.getItemId();
FragmentManager fm = getSupportFragmentManager();
Intent it;
if (id == R.id.nav_home) {
toolbar.setTitle(R.string.title_activity_home);
fm.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right)
.replace(R.id.contenedor, new BackHome()).commit();
} else if (id == R.id.nav_camera) {
} else if (id == R.id.nav_schedule) {
it = new Intent(Home.this, MenuRedirect.class);
it.putExtra("option", 1);
startActivity(it);
} else if (id == R.id.nav_reports) {
it = new Intent(Home.this, MenuRedirect.class);
it.putExtra("option", 2);
startActivity(it);
} else if (id == R.id.nav_students) {
it = new Intent(Home.this, MenuRedirect.class);
it.putExtra("option", 3);
startActivity(it);
} else if (id == R.id.nav_logout) {
it = new Intent(Home.this, Login.class);
startActivity(it);
}else if (id == R.id.nav_settings) {
toolbar.setTitle(R.string.action_settings);
}else if (id == R.id.nav_info) {
toolbar.setTitle(R.string.menu_start_inf_two);
fm.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right)
.replace(R.id.contenedor, new Info()).commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
А это мой фрагмент:
LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = "mx.ipn.myprefect.Schedule"
android:orientation = "vertical">
<TextView
android:layout_marginTop = "15dp"
android:id = "@+id/tv_schedule_present"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center_horizontal"
android:text = "@string/schedule_TextView"
android:textStyle = "italic"
android:fontFamily = "serif"
android:textSize = "18sp"/>
<Spinner
android:id = "@+id/select_group"
android:layout_marginTop = "15dp"
android:layout_marginStart = "50dp"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
</LinearLayout>
В чем проблема? ): Если я удалю select.setAdapter (), он больше не покажет мне никаких ошибок
findViewById(R.id.select_group)
вернул ноль, потому что этот счетчик не находится в действии.
Но я не могу найти представление с помощью findViewById в классе фрагмента.
Если этот
Spinner
находится вFragment
, вы должны обрабатывать его вFragment
, а не вActivity
.