只有一个活动和多个片段的Android
对不起我的英语 我已经读到,在活动或片段之间,我们应该尽快使用片段。正因为如此,我用大量片段和一个活动开发了整个应用程序,使用只有一个活动和多个片段的Android,android,events,android-fragments,Android,Events,Android Fragments,对不起我的英语 我已经读到,在活动或片段之间,我们应该尽快使用片段。正因为如此,我用大量片段和一个活动开发了整个应用程序,使用beginTransaction().replace()方法从一个应用程序切换到另一个应用程序。但似乎我必须在活动中实现所有事件方法(比如onClick),而不是在片段中。所以,如果我只在一个活动中开发所有内容,我将在课堂上使用所有事件方法,这将是不可读的 我想知道最好的做法是什么:一个活动有很多片段,或者多个活动。。。怎么做 谢谢。一个只有一个活动和很多片段的整个应用程
beginTransaction().replace()
方法从一个应用程序切换到另一个应用程序。但似乎我必须在活动中实现所有事件方法(比如onClick),而不是在片段中。所以,如果我只在一个活动中开发所有内容,我将在课堂上使用所有事件方法,这将是不可读的
我想知道最好的做法是什么:一个活动有很多片段,或者多个活动。。。怎么做
谢谢。一个只有一个活动和很多片段的整个应用程序可能不是一个好主意 如果您的应用程序功能需要,您可以通过一个活动管理多个片段:支持平板电脑和手机/导航抽屉/可视寻呼机等 无论如何,使用片段不会强制您在主活动中编写所有事件方法。您的主要活动处理片段创建/交换,但您在片段屏幕上执行的大多数操作都可以在片段类中进行编码 如果你想在多个活动中重复使用一个片段,就必须这样做 正如谷歌文档中所说: “您可以将片段视为活动的模块化部分,它有自己的生命周期,接收自己的输入事件,您可以在活动运行时添加或删除它(有点像“子活动”,可以在不同的活动中重用)” 您放在主活动中的特定代码应该很容易在片段中重构 你看过官方文件了吗?可能会有一些很好的例子。 片段中的编码操作与活动中的编码操作非常相似: 您可以在片段中处理动作栏动作:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate your menu
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Button yourButton = (Button) view.findViewById(R.id.yourbutton);
btnUpload.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Handle button click
}
});
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// Inflate your context menu
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onContextItemSelected(item);
}
}
您可以在片段中处理按钮操作:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate your menu
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Button yourButton = (Button) view.findViewById(R.id.yourbutton);
btnUpload.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Handle button click
}
});
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// Inflate your context menu
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onContextItemSelected(item);
}
}
您可以在片段中编写asynctask
如果有列表,可以在片段中对列表上下文菜单操作进行编码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate your menu
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Button yourButton = (Button) view.findViewById(R.id.yourbutton);
btnUpload.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Handle button click
}
});
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// Inflate your context menu
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.option1:
// Handle option 1
return true;
case R.id.option2:
// Handle option 2
return true;
default:
return super.onContextItemSelected(item);
}
}
AlertDialog在片段中工作
等等等等
您是否有一个特定的操作会给您在片段中重构带来麻烦