Java 片段中的Onclick按钮事件

Java 片段中的Onclick按钮事件,java,android,fragment,buttonclick,Java,Android,Fragment,Buttonclick,我已经尝试了两种类型的代码来让它工作,当我按下按钮进入另一个活动时,它会不断给我力量关闭。我正在使用一个片段,片段代码中有一个按钮,但我似乎无法让它工作 import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android

我已经尝试了两种类型的代码来让它工作,当我按下按钮进入另一个活动时,它会不断给我力量关闭。我正在使用一个片段,片段代码中有一个按钮,但我似乎无法让它工作

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);
}
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入com.androidbelieve.activity.LoginActivity;
导入com.androidbelieve.helper.SQLiteHandler;
导入com.androidbelieve.helper.SessionManager;
导入java.util.HashMap;
公共类PrimaryFragment扩展了Fragment{
私有文本视图txtName;
私用按钮;
私有SQLiteHandler数据库;
私人会话管理器会话;
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
RelativeLayout rootView=(RelativeLayout)充气器。充气(R.layout.primary_布局,容器,false);
txtName=(TextView)rootView.findviewbyd(R.id.username);
btnLogout=(按钮)rootView.findviewbyd(R.id.logout);
//SqLite数据库处理程序
db=新的SQLiteHandler(getActivity().getApplicationContext());
//会话管理器
会话=新会话管理器(getActivity().getApplicationContext());
如果(!session.isLoggedIn()){
logoutUser();
}
//从SQLite获取用户详细信息
HashMap user=db.getUserDetails();
字符串名称=user.get(“名称”);
//在屏幕上显示用户详细信息
txtName.setText(名称);
//注销按钮单击事件
btnLogout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
logoutUser();
}
});
Button Button=(Button)rootView.findViewById(R.id.saleentry);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
updateDetail();
}
});
返回rootView;
}
public void updateDetail(){
Intent Intent=new Intent(getActivity(),SentFragment.class);
星触觉(意向);
}
我试图使用按钮转到另一页,但总是失败。
这是我的stacktrace..这是我使用onclicklistener时的结果

04-07 22:42:37.285 27777-27777/com.androidbelieve.drawerwithswipatebs>E/AndroidRuntime:致命异常:main 进程:com.androidbelieve.drawerwithswipatebs,PID:27777 主题:主题:{default=overlay:system,iconPack:system,fontPkg:system,>com.android.systemui=overlay:system} android.content.ActivityNotFoundException:找不到explicit>activity类>{com.androidbelieve.drawerwithswipetabs/com.androidbelieve.drawerwithswipet>abs.SentFragment};您是否在>AndroidManifest.xml中声明了此活动? 在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)中 位于android.app.Instrumentation.execStartActivity(Instrumentation.java:1514) 在android.app.Activity.startActivityForResult(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) 在com.androidbelieve.drawerwithswipatebs.PrimaryFragment.updateDetail(PrimaryFragment.java:75)上 在com.androidbelieve.drawerwithswipatebs.PrimaryFragment$2.onClick上(PrimaryFragment.java:67) 在android.view.view.performClick上(view.java:5204) 在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) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


首先,必须在xml布局中添加框架布局

<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

SendFragment.class是活动还是片段?不能在上使用
startActivity
 Button button = (Button) rootView.findViewById(R.id.saleentry);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {           
           Fragment fragment = new SentFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction =        fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.content_frame, fragment);
            fragmentTransaction.remove(new PrimaryFragment ());
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
            }
        });