Hallo Ich habe diesen Fehler in meiner App gefunden. Es ist abgestürzt, als ich auf meine Navigation Header geklickt habe. Ich möchte zum Profilfragment gehen, wenn ich auf meine Kopfzeile klicke. Es funktioniert in KitKat. Aber es wurde in Lollipop und höher zerquetscht. Ich habe diesen Fehler erhalten.Android Version Kontrollfehler. ThemeWrapper Fehler in Fragment
java.lang.IllegalArgumentException: Erwartete Empfänger vom Typ com.example.chitsumoe.good_friend.MainActivity, bekam aber android.view.ContextThemeWrapper.
Dies ist mein Hauptaktivitätscode.
package com.example.chitsumoe.good_friend;
import android.net.Uri;
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener,InformTrackFragment.OnFragmentInteractionListener{
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HomeFragment homefragment = new HomeFragment();
android.support.v4.app.FragmentTransaction homefragmentTransaction = getSupportFragmentManager().beginTransaction();
homefragmentTransaction.replace(R.id.frame, homefragment);
homefragmentTransaction.commit();
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.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
public void goToProfile(View view)
{
Toast.makeText(getApplicationContext(),"Clicked",Toast.LENGTH_SHORT).show();
ProfileFragment profileFragment = new ProfileFragment();
android.support.v4.app.FragmentTransaction profileFragmentTransaction = getSupportFragmentManager().beginTransaction();
profileFragmentTransaction.replace(R.id.frame, profileFragment);
profileFragmentTransaction.commit();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
@Override
public void onBackPressed()
{
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item)
{
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_home)
{
HomeFragment homefragment = new HomeFragment();
android.support.v4.app.FragmentTransaction homefragmentTransaction = getSupportFragmentManager().beginTransaction();
homefragmentTransaction.replace(R.id.frame, homefragment);
homefragmentTransaction.commit();
// return true;
}
else if (id == R.id.nav_findfriend)
{
FindFriendFragment findFriendFragment=new FindFriendFragment();
android.support.v4.app.FragmentTransaction findfriendfragmentTransaction = getSupportFragmentManager().beginTransaction();
findfriendfragmentTransaction.replace(R.id.frame, findFriendFragment);
findfriendfragmentTransaction.commit();
// return true;
} else if (id == R.id.nav_friendrequest)
{
FriendRequestFragment friendRequestFragment=new FriendRequestFragment();
android.support.v4.app.FragmentTransaction friendrequestfragmentTransaction = getSupportFragmentManager().beginTransaction();
friendrequestfragmentTransaction.replace(R.id.frame, friendRequestFragment);
friendrequestfragmentTransaction.commit();
//return true;
}
else if (id == R.id.nav_informtrack)
{
InformTrackFragment informtrackfragment=new InformTrackFragment();
android.support.v4.app.FragmentTransaction informtrackfragmentTransaction=getSupportFragmentManager().beginTransaction();
informtrackfragmentTransaction.replace(R.id.frame,informtrackfragment);
informtrackfragmentTransaction.commit();
}
else if (id == R.id.nav_setting)
{
SettingFragment settingFragment=new SettingFragment();
android.support.v4.app.FragmentTransaction settingfragmentTransaction = getSupportFragmentManager().beginTransaction();
settingfragmentTransaction.replace(R.id.frame, settingFragment);
settingfragmentTransaction.commit();
}
else if (id == R.id.nav_log_out) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
Dies ist mein ProfilFragment-Code.
public class ProfileFragment extends Fragment {
private OnFragmentInteractionListener mListener;
public ProfileFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
return rootView;
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
}
Was ist los mit Lollipop?
Dies ist das gesamte Crashprotokoll.
04-12 05: 28: 03.835 9141-9141/com.example.chitsumoe.good_friend E/Android Runtime: fatal EXCEPTION: main Prozess: com.example.chitsumoe.good_friend, PID: 9141 Java. lang.IllegalArgumentException: Erwarteter Empfänger vom Typ com.example.chitsumoe.good_friend.MainActivity, aber habe android.view.ContextThemeWrapper bei java.lang.reflect.Method.invoke (Native Method) bei android.view.View $ DeclaredOnClickListener. onClick (View.java:4447) bei android.view.View.performClick (View.java:5198) bei android.view.View $ Perform Click.run (View.java:21147) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper. Schleife (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
Bitte senden Sie das gesamte Crashlog – SMR
I Protokoll hinzugefügt hatte. thx –
@SMR Sie können jetzt überprüfen –