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();
}
});