【发布时间】:2017-05-18 20:12:45
【问题描述】:
我有一个 Java 类,它代表一个带有一些按钮的通用用户区域活动,我必须将这些按钮、文本 ecc 集成到一个选项卡式活动中。 这是泛型类。
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);
}
}
}
由于 Java 不支持多重继承,我如何同时从 AppCompatActivity 和 Fragment 扩展以集成到我的 TabbedView 按钮 ecc..?
这是我要放置代码的片段
public class Tab3Add extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab3add, container, false);
return rootView;
}
}
【问题讨论】:
-
你的问题我不清楚。实际上,片段用于完成活动中托管的部分工作。您所需的任务代码将在 Fragment 上实现,并且该片段将添加到活动中。看看这个vogella.com/tutorials/AndroidFragments/article.html
-
你不能同时继承两个类。不能同时扩展 Activity 和 Fragment。但是您可以将它们分开但添加活动。 Fragment 部分将根据其在 Activity 上的流程执行