これを動作させるために2種類のコードを試しましたが、別のアクティビティに移動するためにボタンを押しても強制終了されます。私はフラグメントを使用しており、そのフラグメントのコードにボタンがありますが、動作させることができません。Onclickボタンフラグメント内のイベント
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);
}
ボタンを使用して別のページに移動しようとしましたが、常に失敗します。ここで
は私stacktrace..thisである私は
04-07 22 onclicklistener使用された場合の結果である:42:37.285 27777から27777/com.androidbelieve.drawerwithswipetabs> E/AndroidRuntime:致命的な例外:メイン プロセス:com.androidbelieve.drawerwithswipetabs、PID:27777 テーマ:テーマ:{デフォルト=オーバーレイ:システム、iconPack:システム、fontPkg:システム、com.android.systemui =オーバーレイ:システム} android.content.ActivityNotFoundException:明示的な>アクティビティクラス> {com.androidbelieve.drawerwithswipetabs/com.androidbelieve.drawerwithswipet> abs.SentFragment}を見つけることができません。 AndroidManifest.xmlでこのアクティビティを宣言しましたか? android.app.Activity.startActivityForResultでandroid.app.Instrumentation.execStartActivity(Instrumentation.java:1514) でandroid.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801) (Activity.java:3930) ででandroid.app.Activity.startActivityForResult(Activity.java:3890) android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:849) android.support.v4.app.FragmentActivity $ HostCallbacks.onStartActivityFromFragment( FragmentActivity.java:907) android.support.v4.app.Fragment.startActivity(Fragment.java:916) at com.android信じられないけれど、私は、私が信じていることを信じています。私は信じています。私は信じています。私は信じています。 android.view.Viewで$ PerformClick.run(View.java:21156) とandroid.os.Handler.handleCallback(Handler.java:739) とandroid.os.Handler.dispatchMessage(Handler.java:95) android.os.Looper.loop(Looper.java:148) android.app.ActivityThread.main(ActivityThread.java:5456) at java.lang.reflect.Method.invoke(ネイティブメソッド)com.android.internal.os.ZygoteInit.mainでcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) で(ZygoteInit.java:616)まず、あなたを
がSendFragment.classアクティビティまたはフラグメントでクリックしたときに、このコードを使うのか?フラグメントに対して 'startActivity'を使うことはできません。 –
fragment @ AlexTownsend – Kumar
私が言ったように、 'startActivity'でフラグメントを開始することはできません。あなたの 'SendFragment'を含む新しいアクティビティを作成し、' startActivity'を使用して起動するか、B)あなたの現在のアクティビティで 'PrimaryFragment'を' SendFragment'に置き換えます。 –