我有一个ViewPager
,需要从前一个int
中获取Activity
个值EditText
,其中包含两个int
个值,这两个Fragment
的值被放入两个 final EditText editText2 = (EditText) findViewById(R.id.posti); //EDIT TEXT BOX MENU POSTI
final EditText editText = (EditText) findViewById(R.id.dialogText); // EDIT TEXT BOX POSTI ORARIO
final FrameLayout editTextLayout = (FrameLayout) findViewById(R.id.frame_ordinazioni); //EDIT TEXT MENU BOX
final Button button_conferma = (Button) findViewById(R.id.bottone_conferma); //BOTTONE MENU BOX
editTextLayout.setVisibility(View.VISIBLE);
button_conferma.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final int numero_tavolo = Integer.parseInt(editText.getText().toString());
final int posti= Integer.parseInt(editText2.getText().toString());
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
//guide that I follow
final Bundle bundle = new Bundle();
bundle.putInt("Tavoli",numero_tavolo);
bundle.putInt("Posti",posti);
PaniniMenuFragment fragobj = new PaniniMenuFragment();
fragobj.setArguments(bundle);
}
});
变量。
我如何获取这些值并发送到public View onCreateView(final LayoutInflater inflater,ViewGroup
container,Bundle savedInstanceState){
View view=(View)inflater.inflate(R.layout.fragment_menupanini, container,false);
ImageView iv = (ImageView) view.findViewById(R.id.panini_images);
TextView tv=(TextView)view.findViewById(R.id.panini_ingredienti);
TextView names=(TextView)view.findViewById(R.id.panini_names);
Button ordina=(Button)view.findViewById(R.id.panini_ordina);
TextView prezzo=(TextView)view.findViewById(R.id.panini_prezzo);
final TavoloTable myDB=new TavoloTable(getActivity().getApplicationContext());
int imageId = getArguments().getInt(IMAGE_ID);
final String panini_prezzo=getArguments().getString(STRING_PREZZO);
int position = getArguments().getInt(POSITION);
String StringIngredients=getArguments().getString(STRING_INGREDIENTS);
final String StringName=getArguments().getString(STRING_NAME);
iv.setImageResource(imageId);
tv.setText(StringIngredients);
names.setText(StringName);
prezzo.setText(panini_prezzo);
ordina.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDB.open();
Bundle bundle=new Bundle();
int numero_tavolo=bundle.getInt("Tavoli");;
int numero_posti= bundle.getInt("Posti");
counter++;
}
});
}
?我尝试了捆绑和意图,但没有工作。
这是代码: 活动一:
{{1}}
ViewPager上的片段:
{{1}}
抱歉我的英语不好。
答案 0 :(得分:0)
您是否尝试通过静态构造函数方法的参数传递这些值?
以下是一个例子:
public class YourFragment extends Fragment{
private int numberOne, numberTwo;
public static YourFragment(int numberOne, int numberTwo) newInstance{
YourFragment fragment = new YourFragment();
Bundle args = new Bundle();
args.putInt("numberOne", numberOne);
args.putInt("numberTwo", numberTwo);
fragment.setArguments(args);
return fragment;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if(args != null){
this.numberOne = args.getInt("numberOne");
this.numberTwo = args.getInt("numberTwo");
}
}
}
然后你只需要在你的活动上创建你的片段并调用它,就像这样:
YourFragment fragment = YourFragment.newInstance(numberOne, numberTwo);
getSupportFragmentManager().
beginTransaction().
replace(R.id.containerId, fragment).
commit();
答案 1 :(得分:-1)
您可以使用bundle via intent将数据从Activity ONE发送到Activity TWO,并设置此片段的参数。
@ρяσѕρєяK在这里回答了如何将数据从活动发送到片段 - > Send data from activity to fragment in android
修改
您可以使用委派模式!
在软件工程中,委托模式是面向对象编程中的设计模式,其中对象不是执行其声明的任务之一,而是将该任务委托给关联的辅助对象。存在一个责任倒置,其中一个辅助对象(称为委托)负责为委托者执行任务。委托模式是构成其他软件模式的基本抽象模式之一,例如组合(也称为聚合),混合和方面。“ - 维基百科。
您可以返回具有这些值的对象。