gpt4 book ai didi

android - 当我点击 Activity 上的按钮时,如何更改当前 fragment 中按钮的文本?

转载 作者:行者123 更新时间:2023-11-29 20:29:50 25 4
gpt4 key购买 nike

我有一个添加/删除 fragment 的 Activity 。当我单击 Activity 中的另一个按钮时,我想更改当前 fragment 中按钮的文本。如何实现?

我正在将 fragment 添加到 Activity 中,如下所示:

private void navigateToPostAd() {
// update the main content by replacing fragments


Fragment fragment = null;
fragment = new PostAdA();


if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack("post_ad").commit();


} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}

在主要 Activity 中我正在做以下事情

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {

location = (String)loadFromSharedPrefs("location");


PostAdA fragment = new PostAdA();
if(fragment.getBtnSelectCity() != null) {
fragment.getBtnSelectCity().setText(location);
}

return true;
}
}

最佳答案

如果您将 FrameLayout 替换为 Fragment,您可以将 Fragment 声明为局部变量。

MyFragment fragment = new MyFragment();

在你的 MyFragment 上有一个按钮的 getter

public Button getButton() {
return mButton;
}

当您的 Activity 按钮中有 onClick 时,只需调用 fragment.getButton()setText()

如果您使用的是 ViewPager,请调用您的 PagerAdaptergetItem(int position) 并执行相同的操作。看起来像这样:

((MyFragment) mAdapter.getItem(mViewPager.getCurrentItem())).getButton().setText("Your Text");

无论哪种方式,您都需要一个用于您的 Button 的 getter 以及一种访问您的 Fragment 的方法。

编辑:这里的问题是您正在创建 PostAdA 的新实例 在 fragment 对象的初始声明中,将其设为 类变量

public class YourClass extends Activity {

Fragment fragment;

private void navigateToPostAd() {
// update the main content by replacing fragment
fragment = new PostAdA();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack("post_ad").commit();
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
location = (String)loadFromSharedPrefs("location");
if(fragment != null) {
fragment.getBtnSelectCity().setText(location);
}
return true;
}
}
}

关于android - 当我点击 Activity 上的按钮时,如何更改当前 fragment 中按钮的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32165209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com