Ich habe zwei Arten von Code ausprobiert, um dies zum Funktionieren zu bringen, und es hält mich Kraft, schließt, wenn ich die Taste drücke, um in eine andere Aktivität zu gehen. Ich benutze ein Fragment und es gibt einen Knopf in diesem Fragments-Code, aber ich kann es scheinbar nicht zum Laufen bringen.Onclick-Taste Ereignis in Fragment
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.androidbelieve.activity.LoginActivity;
import com.androidbelieve.helper.SQLiteHandler;
import com.androidbelieve.helper.SessionManager;
import java.util.HashMap;
public class PrimaryFragment extends Fragment {
private TextView txtName;
private Button btnLogout;
private SQLiteHandler db;
private SessionManager session;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RelativeLayout rootView = (RelativeLayout) inflater.inflate(R.layout.primary_layout, container, false);
txtName = (TextView) rootView.findViewById(R.id.username);
btnLogout = (Button) rootView.findViewById(R.id.logout);
// SqLite database handler
db = new SQLiteHandler(getActivity().getApplicationContext());
// session manager
session = new SessionManager(getActivity().getApplicationContext());
if (!session.isLoggedIn()) {
logoutUser();
}
// Fetching user details from SQLite
HashMap<String, String> user = db.getUserDetails();
String name = user.get("name");
// Displaying the user details on the screen
txtName.setText(name);
// Logout button click event
btnLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
logoutUser();
}
});
Button button = (Button) rootView.findViewById(R.id.saleentry);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateDetail();
}
});
return rootView;
}
public void updateDetail() {
Intent intent = new Intent(getActivity(), SentFragment.class);
startActivity(intent);
}
Ich habe versucht, auf eine andere Seite mit der Taste zu gehen, aber es nicht immer. Hier
ist mein stacktrace..this das Ergebnis ist, wenn ich verwendet OnClickListener
04-07 22: 42: 37,285 27.777-27.777/com.androidbelieve.drawerwithswipetabs> E/Android Runtime: FATAL AUSNAHME: Haupt Prozess: com.androidbelieve.drawerwithswipetabs, PID: 27777 Thema: themes: {default = überlagerung: system, iconPack: system, fontPkg: system,> com.android.systemui = überlagerung: system} android.content.ActivityNotFoundException: Die explizite Aktivitätsklasse konnte nicht gefunden werden. {Com.androidbelieve.drawerwithswipetabs/com.androidbelieve.drawerwithswipet> abs.SentFragment}; Hast du diese Aktivität in deiner> AndroidManifest.xml deklariert? bei android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1801) bei android.app.Instrumentation.execStartActivity (Instrumentation.java:1514) bei android.app.Activity.startActivityForResult (Activity.java:3930) bei android.app.Activity.startActivityForResult (Activity.java:3890) bei android.support.v4.app.FragmentActivity.startActivityFromFragment (FragmentActivity.java:849) bei android.support.v4.app.FragmentActivity $ HostCallbacks.onStartActivityFromFragment (FragmentActivity.java:907) bei android.support.v4.app.Fragment.startActivity (Fragment.java:916) bei com.android believe.drawerwithswipetabs.PrimaryFragment.updateDetail (PrimaryFragment.java:75) bei com.androidbelieve.drawerwithswipetabs.PrimaryFragment $ 2.onClick (PrimaryFragment.java:67) bei android.view.View.performClick (View.java:5204) bei android.view.View $ PerformClick.run (View.java:21156) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5456) 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)
Ist SendFragment.class eine Aktivität oder ein Fragment? Sie können 'startActivity' nicht für ein Fragment verwenden. –
fragment @ AlexTownsend – Kumar
Wie gesagt, Sie können kein Fragment mit 'startActivity' starten, nur Aktivitäten.Einige Optionen sind A) Erstellen Sie eine neue Aktivität, die Ihre 'SendFragment' enthält und starten Sie diese mit' startActivity' oder B) Ersetzen Sie Ihre 'PrimaryFragment' mit' SendFragment' in Ihrer aktuellen Aktivität –