Android : How Do I Update My TextView In A Fragment
Solution 1:
You need to assign the inflated fragment layout to a variable so that you can access its findViewById()
method. Then you return it once you're done updating your widgets.
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
// -- inflate the layout for this fragment
View myInflatedView = inflater.inflate(R.layout.fragmentmt, container,false);
// Set the Text to try this out
TextView t = (TextView) myInflatedView.findViewById(R.id.viewItem);
t.setText("Text to Display");
return myInflatedView;
}
Normally, when you call findViewById()
within an Activity
, you're invoking Activity.findViewById()
. Trying the same call within your Fragment
class will fail because there is no such Fragment.findViewById()
method. So, you must use View.findViewById()
with your inflated view to obtain references to your widgets.
Solution 2:
I am not an expert but I would say that return statement within a method returns something and the next lines after this statement are unreachable :O
So try to change the order! :)
Solution 3:
I am using this code from my activity to update a textview added in xml tag. The textview are class level objects. Heres some code:
<fragment
android:id="@+id/fragmentRegister"
android:name="com.proshore.loveis.RegisterFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/view1" />
Heres the fragment code just showing the class level variable.
public class RegisterFragment extends Fragment implements OnClickListener {
TextView textViewDOB, textViewLanguage;
public RegisterFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//eluded methods here
}
}
Now the activity from where I update my fragment:
public class RegisterActivity extends FragmentActivity {
Button buttonEnter;
RegisterFragment fragmentRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
buttonEnter = (Button) findViewById(R.id.buttonEnter);
fragmentRegister = (RegisterFragment) getSupportFragmentManager()
.findFragmentById(R.id.fragmentRegister);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
buttonEnter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("dontknowitwillowrk", fragmentRegister.textViewLanguage
.getText().toString());
fragmentRegister.textViewLanguage.setText("hello mister how do you do");
}
});
}
}
Note: not sure if this is a good way.
Post a Comment for "Android : How Do I Update My TextView In A Fragment"