Java 如何从片段调用活动方法?
我需要从片段中调用活动中的方法,我甚至不能在片段中恢复活动,我不知道如何解决这个问题。我需要从片段的一部分onClick调用活动的方法,因为我需要更新一个值,因为它已更改(例如:值为1,onClick后值为2,但活动未更新) 这是活动中的方法:Java 如何从片段调用活动方法?,java,android,Java,Android,我需要从片段中调用活动中的方法,我甚至不能在片段中恢复活动,我不知道如何解决这个问题。我需要从片段的一部分onClick调用活动的方法,因为我需要更新一个值,因为它已更改(例如:值为1,onClick后值为2,但活动未更新) 这是活动中的方法: public void onUpdate(){ //setCount.setText(Integer.toString(new Database(this).getCountCart(FirebaseAuth.getInstance().
public void onUpdate(){
//setCount.setText(Integer.toString(new Database(this).getCountCart(FirebaseAuth.getInstance().getCurrentUser().getUid())));
setCount.setText(Integer.toString(new Database(this).getTotalCount(FirebaseAuth.getInstance().getCurrentUser().getUid())));
cart = new Database(this).getCarts(FirebaseAuth.getInstance().getCurrentUser().getUid());
int total = 0;
for(OrderModel order:cart)
total+=(Integer.parseInt(String.valueOf(order.getPret()))) *(order.getCantitate());
Locale locale = new Locale("ro","RO");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
totalPrice.setText(fmt.format(total));
}
下面是我试图从片段中调用它的地方:
fragmentItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Database(getActivity().getBaseContext()).increaseCart(FirebaseAuth.getInstance().getCurrentUser().getUid(),fragmentUnuModel.getDenumire());
food.onUpdate();
}
下面是错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.cosnila.orderme.Food.onUpdate()' on a null object reference
at com.cosnila.orderme.Fragments.FragmentUnu$1$1.onClick(FragmentUnu.java:123)
如果您的活动中有方法onUpdate,并且希望从片段中调用活动方法,请在需要时在片段中按如下方式调用它 ((YouActivityName)getActivity()).onUpdate() 确保替换活动名称。您可以将onUpdate()设置为static
img_search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent displayFlights = new Intent(getActivity(), SelectFlight.class);
startActivity(displayFlights);
}
});
您的方法头应该如下所示:
public static void onUpdate() {
// your code
}
此方法在活动中没有什么特殊之处。您可以在Utils类中将其设置为静态方法。@Josh我有两个需要设置的文本视图,具体如何设置?请在
新数据库((getContext())…)
中尝试该参数。你设置了你的rootview吗?那么这是你片段的宿主活动吗?@Josh片段在活动中,但我有一个ViewPagerAdapter来创建我的片段。请不要只发布代码作为答案,而是解释你的代码做什么以及它如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。