توسط
aminsh77
با سلام
من برای ارتباط بین اکتیویتی و فراگمنت از interface استفاده کردم به شکل زیر:
کدهای فراگمنت:
public class Fragment_one extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.one_fragment, container, false);
return view;
}
public interface message {
public void showName(int name);
}
@Override
public void onResume(){
super.onResume();
//OnResume Fragment
((message) getContext()).showName(1);
}
}
و کد های اکتویتی:
public class MainActivity extends AppCompatActivity implements
Fragment_one.message,
Fragment_two.message,
Fragment_three.message{
Toolbar toolbar;
int fragment_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(getString(R.string.app_name));
//// مشکل
//// چون خارج از متد showname هست
/// مقدار name رو نمیگیره
int a = fragment_number;
System.out.println("Fragment-Num :" + a);
//// مشکل
}
@Override
public void showName(int name) {
fragment_number = name;
/// این چون داخل متد showName هست
///مشکلی نداره و کار میده
System.out.println("Fragment :" + fragment_number);
}
}
کد به خوبی کار میده و مشکل من اینه اون مقدار عددی showName رو وقتی توی fragment_number خارج از متد showName مقدار رو نمیگیره
اون قسمتی که نوشتم مشکل رو میگم تو کد های اکتیویتی
حالا چجور اون مقدار رو خارج از متد بگیرم؟؟
لطفا راهنماییم کنید خیلی گیرم
با تشکر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .