Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:设置在主java类中可见的表行_Java_Android - Fatal编程技术网

Android:设置在主java类中可见的表行

Android:设置在主java类中可见的表行,java,android,Java,Android,我有一个Tab1类和一个主类 下面的Tab1类-将表格行设置为不可见: public class Tab1 extends Fragment { View v; TableRow tr; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

我有一个Tab1类和一个主类

下面的Tab1类-将表格行设置为不可见:

public class Tab1 extends Fragment {

    View v;
    TableRow tr;

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


        v =inflater.inflate(R.layout.tab_1,container,false);

        tr = (TableRow)v.findViewById(R.id.tb1_r1);
        tr.setVisibility(View.INVISIBLE);
        tr = (TableRow)v.findViewById(R.id.tb1_r2);
        tr.setVisibility(View.VISIBLE);
        tr = (TableRow)v.findViewById(R.id.tb1_r3);
        tr.setVisibility(View.INVISIBLE);
        tr = (TableRow)v.findViewById(R.id.tb1_r4);
        tr.setVisibility(View.INVISIBLE);

        return v;
    }
}
在主要活动中:

我有一个弹出窗口,其中包含一个按钮,当它被按下时,它将设置一个表行可见。现在,我正试图将第一个表行设置为可见

public void BtnAddContact(View view) {

    Toast.makeText(getApplication(), "New Contact Added", Toast.LENGTH_SHORT ).show();

    popupWindow_addcontact.dismiss();

    LayoutInflater inflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);

    View view1 = inflater.inflate(R.layout.tab_1, null);

    TableRow tr = (TableRow)view1.findViewById(R.id.tb1_r1);

    tr.setVisibility(View.VISIBLE);
}

它会运行,不会显示错误消息。将显示toast消息,但表行不可见。您能告诉我为什么表格行不可见吗?我相信这与不访问Tab1Java类有关

关于
BtnAddContact()
方法:

不要膨胀视图并将其可见性设置为可见-您需要在片段中找到此视图,然后设置其可见性:

yourTab1Fragment.getView().findViewById(R.id.tb1_r1).setVisibility(View.VISIBLE);
或者,如果您只有这1个片段,则只需跳过这2行:

直接拨打:

  TableRow tr = (TableRow) findViewById(R.id.tb1_r1);

您是否建议在我的主java类中使用onCreateView()方法。我不确定如何在我的片段中找到视图。@akalanta我的建议是针对
BtnAddContact
方法。剩下的代码就可以了。请看更新的答案。所以我做的是:Tab1 tb1=new Tab1();tb1.getView().findViewById(R.id.tb1_r1).setVisibility(View.VISIBLE);我得到的错误是:java.lang.NullPointerException:尝试在null对象上调用虚拟方法“android.view.view android.view.view.findViewById(int)”reference@akalanta请检查提到的第二种方法。我最终将使用Tab1和Tab2。那么我会使用你提到的第一种方法吗
  TableRow tr = (TableRow) findViewById(R.id.tb1_r1);