I'm new to Android app programming.
I have two Fragments - fragmentA.xml and fragmentB.xml.
In fragmentA there are two Buttons - Button One (id: btnOne) and Button Two (id: btnTwo).
In fragmentB there is TextView (id- textView)
In fragmentB java class there are two String - string1 and string2
Both buttons refers to fragmentB.
I want two set the textView text to string1 when I press Button One
and string2 when I press Button Two.
How can I do that?
I was using following code in fragmentB java class to display only 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;
}
Can I use any if-else statement here?
Thanx
Create a Global class in your project and define a public string ..
public class Global{
public static String TEXT = "";
}
In your Fragment A change this TEXT on button click event..
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";
}
});
same as on other button if you have
In your FragmentB just setText()....it will take lase value change to 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;
}
});
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;
}
来源:https://stackoverflow.com/questions/35182457/how-to-set-different-string-in-a-textview-in-fragment-while-clicking-different-b