2015-05-04 61 views
-2

我想从安卓:setVisibility不行

类更改视图 linearlayout

但不起作用此代码

main.java

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ComNet.readDb(); 
    } 
} 

和:

ComNet.java

public class ComNet { 
    public static Context context; 

    public static void readDb() { 

     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View viewMain = inflater.inflate(R.layout.main, null); 
     LinearLayout lnrPart = (LinearLayout) viewMain.findViewById(R.id.lnrPart); 
     lnrPart.setVisibility(View.GONE); 
    } 
} 

如何从main.xml类(ComNet)改变lnrPart

回答

2

将活动rootView发送到readDB函数。

main.java

public class MainActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ComNet.readDb(findViewById(R.id.main)); 
    } 
} 

ComNet.java

public static void readDb(View viewMain) { 

    LinearLayout lnrPart = (LinearLayout) viewMain.findViewById(R.id.lnrPart); 
    viewMain.setVisibility(View.GONE); 
} 
+0

谢谢,但此行错误:android.R.layout.main,错误:主要解决不了或无法在现场 – Mohammad

+1

修正了代码...只是抹去android。在R.layout.main之前 – ilan

3
View viewMain = inflater.inflate(R.layout.main, null); 

这一行,你要创建一个新View,随着main.xml内容。该对象与您在MainActivity屏幕上看到的对象不同。 setVisibility正在工作。您在错误的实例上调用它