Java 如何在单击不同按钮时在片段中的Textview中设置不同的字符串?
我是Android应用程序编程新手 我有两个片段-Java 如何在单击不同按钮时在片段中的Textview中设置不同的字符串?,java,android,android-fragments,android-button,Java,Android,Android Fragments,Android Button,我是Android应用程序编程新手 我有两个片段-fragmentA.xml和fragmentB.xml 在fragmentA中有两个按钮-按钮一(id:btnOne)和按钮二(id:btnTwo) 在fragmentB中有TextView(id-TextView) 在fragmentBjava类中有两个String-string1和string2 两个按钮都指向片段b 当我按下按钮1时,我需要两个按钮将textView文本设置为string1 当我按下按钮2时,我会看到string2 我该怎么
fragmentA.xml
和fragmentB.xml
在fragmentA
中有两个按钮-按钮一(id:btnOne
)和按钮二(id:btnTwo
)
在fragmentB
中有TextView(id-TextView
)
在fragmentB
java类中有两个String
-string1
和string2
两个按钮都指向片段b
当我按下按钮1时,我需要两个按钮将textView
文本设置为string1
当我按下按钮2时,我会看到string2
我该怎么做
我在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语句吗
Thanx在项目中创建一个
Global
类,并定义一个public字符串
public class Global{
public static String TEXT = "";
}
在您的片段A
中,更改按钮单击事件时的文本
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);
在项目中创建一个Global
类,并定义一个public字符串
public class Global{
public static String TEXT = "";
}
在您的片段A
中,更改按钮单击事件时的文本
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);
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;
}
});
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;
}
FragmentB.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;
}
});
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;
}
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;
}
});
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;
}
FragmentB.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;
}
});
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;
}
“两个按钮都指向FragmentB”这是什么意思?在全局类中只创建一个字符串(两个片段都可以访问),并将其设置为textview,…只需更改按钮上的字符串,单击它就会自动显示更改的一个…@AnshulJain我使用一种方法打开碎片B,我使用按钮一和按钮二的onClick方法中的方法你尝试过我的方法吗suggested@Mohit你的意思是我应该在MainActivity.java中声明一个字符串。你能给我提供密码吗。如果有两个以上的botton呢。我的意思是每个按钮都有不同的字符串。“两个按钮都引用FragmentB”这意味着什么?在全局类中只创建一个字符串(两个fragment都可以访问),并将其设置为textview,…只需更改按钮上的字符串,单击它就会自动显示更改的一个…@AnshulJain我使用一种方法打开碎片B,我使用按钮一和按钮二的onClick方法中的方法你尝试过我的方法吗suggested@Mohit你的意思是我应该在MainActivity.java中声明一个字符串。你能给我提供密码吗。如果有两个以上的botton呢。我的意思是每个按钮都有不同的字符串,它起作用了。我可以使用string.xml资源文件中的string吗?我不建议这样做,因为您可以获取我存储在string中的内容,但您可以在运行时进行修改。请查看post…它成功了。我可以使用string.xml资源文件中的string吗?我不建议这样做,因为您可以获取我存储在string中的内容,但您可以在运行时进行修改。请查看post。。。