Java 在片段中添加按钮
我有一个Java类,它用一些按钮表示一个通用的用户区域活动,我必须将这个按钮、文本ecc集成到一个选项卡式活动中。 这是泛型类Java 在片段中添加按钮,java,android,fragment,Java,Android,Fragment,我有一个Java类,它用一些按钮表示一个通用的用户区域活动,我必须将这个按钮、文本ecc集成到一个选项卡式活动中。 这是泛型类 public class UserAreaActivity extends AppCompatActivity { private Button scan_btn; // User Session Manager Class UserSessionManager session; Context thisContext; // Button L
public class UserAreaActivity extends AppCompatActivity {
private Button scan_btn;
// User Session Manager Class
UserSessionManager session;
Context thisContext;
// Button Logout
Button btnLogout;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_area);
thisContext = getApplicationContext();
// Session class instance
session = new UserSessionManager(getApplicationContext());
final EditText etUsername= (EditText) findViewById(R.id.etUsername);
final TextView welcomeMessage=(TextView) findViewById(R.id.tvWelcomeMsg);
// Button logout
btnLogout = (Button) findViewById(R.id.btnLogout);
// Toast.makeText(getApplicationContext(),
// "User Login Status: " + session.isUserLoggedIn(),
//
//get user data from session
HashMap<String, String> user = session.getUserDetails();
//get name
String name = user.get(UserSessionManager.KEY_NAME);
// get username
String username = user.get(UserSessionManager.KEY_USERNAME);
//Intent intent = getIntent();
String message = name + " welcome to your user area!";
welcomeMessage.setText(message);
etUsername.setText(username);
scan_btn=(Button) findViewById(R.id.scan_btn);
final Activity activity = this;
btnLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Clear the User session data
// and redirect user to LoginActivity
session.logoutUser();
}
});
scan_btn.setOnClickListener
(
new View.OnClickListener()
{
@Override
public void onClick(View view)
{
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("Scan");
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(false);
integrator.initiateScan();
}
}
);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null)
{
if(result.getContents()==null)
{
Toast.makeText(this,"Hai cancellato la scansione", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, result.getContents(),Toast.LENGTH_LONG).show();
}
}
else
{
super.onActivityResult(requestCode, resultCode, data);
}
}
}在这种情况下,您可以做的最好的事情是在片段中膨胀活动的布局,并手动将单击处理程序和其他代码移动到其中,同时注意
活动
和片段
之间的生命周期差异:
public class Tab3Add extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_user_area, container, false);
// Move your other code as well
return rootView;
}
另外,如果在
R.layout.activity\u user\u区域中有任何onClick
属性,您需要删除它们并以编程方式添加它们。我不清楚您的问题。实际上,片段用于完成活动中托管的部分工作。您所需的任务代码将在片段上实现,该片段将添加到活动中。请注意,您不能同时继承两个类。不可能同时扩展活动和片段。但您可以将它们分开,但可以添加到活动中。片段部分将根据其在活动上的流执行
public class Tab3Add extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_user_area, container, false);
// Move your other code as well
return rootView;
}