在Fragment中更改TextView可见性

时间:2013-10-19 02:46:59

标签: android fragment

我的PageViewer中有一些片段。 在主片段中,如果没有连接,我想显示一个组件(TextView或imageView)。 在下面的代码中,我可以访问我的textview,但我无法让它们消失。

public class MainFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View layout = inflater.inflate(R.layout.main, container, false);


//      RelativeLayout mainLayout = (RelativeLayout)findViewById(R.layout.main);
    TextView TxtIsNotConnected = (TextView) layout.findViewById(R.id.isNotConnected);
    TextView TxtIsConnected = (TextView) layout.findViewById(R.id.isConnected);
//      String text = TxtIsNotConnected.getText().toString(); // This is a test which works, return the text o my textview.
    boolean isConnected = ConnectivityUtils.isConnected(getActivity()); // This Works fine
    if (!isConnected) TxtIsNotConnected.setVisibility(View.VISIBLE); // NOT WORKING
    else              TxtIsConnected.setVisibility(View.VISIBLE); // NOT WORKING

    return inflater.inflate(R.layout.main, container, false);
}

我该怎么办?

1 个答案:

答案 0 :(得分:2)

使TextView可见

yourTextView.setVisibility(View.VISIBLE);

使隐形

yourTextView.setVisibility(View.GONE);

从您的代码中,您似乎必须保持一个视图可见而另一个视图不可见。所以,请试试这个

if (!isConnected) {
TxtIsNotConnected.setVisibility(View.VISIBLE);
TxtIsConnected.setVisibility(View.GONE);
} else {
   TxtIsConnected.setVisibility(View.VISIBLE); 
    TxtIsNotConnected.setVisibility(View.GONE);

}

希望它有所帮助...

编辑: 好吧,您的代码在可见性方面是正确的,但您犯了一个愚蠢的错误,这就是为什么您的代码似乎无效。查看onCreateView方法的第一行和最后一行。你在View对象中夸大了你的R.layout.main,名为" layout"。您已在该布局中设置操作。最后,您返回了该视图的新实例。所以,你以前的代码变得毫无用处。所以,你的退货声明将是......

return layout ;

它应该解决问题。