【问题标题】:How to set Different String in a Textview in Fragment while clicking different Button?单击不同的按钮时,如何在 Fragment 的 Textview 中设置不同的字符串?
【发布时间】:2016-02-03 16:28:22
【问题描述】:

我是 Android 应用编程新手。

我有两个片段 - fragmentA.xmlfragmentB.xml

fragmentA 中有两个按钮 - 按钮一(id:btnOne)和按钮二(id:btnTwo)。

fragmentB 中有TextView (id-textView)

fragmentB java 类中有两个String - string1string2

两个按钮都指向fragmentB

当我按下按钮一时,我想要两个将 textView 文本设置为 string1string2 当我按下按钮二时。

我该怎么做?

我在fragmentB java 类中使用以下代码仅显示string1

public View onCreateView(
    LayoutInflater inflater, 
    ViewGroup container, 
    Bundle savedInstanceState) 
{
    View rootView = inflater.inflate(R.layout.oop_page,container,false);
    TextView textV = (TextView)rootView.findViewById(R.id.textView);
    textV.setText(string1);
    return rootView;
}

我可以在这里使用任何 if-else 语句吗?

感谢

【问题讨论】:

  • “两个按钮都引用FragmentB”是什么意思?
  • 在你的全局类中只创建一个字符串(两个片段都可以访问)并将它设置为你的文本视图,....只需在按钮单击时更改字符串,它将自动显示更改一个...
  • @AnshulJain 我使用方法打开FragmentB,我使用的是按钮一和按钮二的onClick方法中的方法
  • 你试过我的建议了吗
  • @Mohit 你的意思是我应该在 MainActivity.java 声明一个字符串。你能给我代码吗?如果有两个以上的按钮怎么办。我的意思是每个按钮都有不同的字符串。

标签: java android android-fragments android-button


【解决方案1】:

在您的项目中创建一个Global 类并定义一个public 字符串..

public class Global{
  public static String TEXT = "";
}

在您的Fragment A 中更改此TEXT 按钮点击事件..

but1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Global.TEXT = "string 1";
    }
});
but2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Global.TEXT = "string 2";
    }
});

如果你有其他按钮,则与其他按钮相同

在您的FragmentB 中只需setText()....它将把激光值更改为Text

text.setText(Global.TEXT);

【讨论】:

  • 成功了。我可以使用 string.xml 资源文件中的字符串吗?
  • 我不建议这样做,因为您可以获取我存储在字符串中的内容,但您可以在运行时进行修改。看看this 帖子...
【解决方案2】:

FragmentA.java

public boolean btn1Clicked, btn2Clicked = false;
        Button button1 = (Button) rootViewfindViewById(R.id.button1);
            button1.setOnClickListener(new View.OnClickListener() {

              @Override
              public void onClick(View v) {
                btn1Clicked = true;
              }
            });

            Button button2 = (Button) rootView.findViewById(R.id.button2);
            button2.setOnClickListener(new View.OnClickListener() {

              @Override
              public void onClick(View v) {
                btn2clicked = true;
              }
            });

FragmentB.java

 public View onCreateView(
        LayoutInflater inflater, 
        ViewGroup container, 
        Bundle savedInstanceState) 
    {
        View rootView = inflater.inflate(R.layout.oop_page,container,false);
        TextView tv1 = (TextView)rootView.findViewById(R.id.textView);
        if(!(FragmentA.btn1Clicked))
         {
        // Not Clicked
         }
        else{
           tv1.setText("Button 1 Clicked!")'
    }
        return rootView;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多