android一个xml的FrameLayout中有两个相对布局如何在程序中设置一个显示一个隐藏,而且通过事件可以使其显示状态互换
                            v.setVisibility(View.INVISIBLE);
v1.setVisibility(View.VISIBLE);
v1 =base.findViewById(R.id.second);用这句仍然取不到第二个布局的内容显示,请教一下。

解决方案 »

  1.   

    怎么会取不到呢?有代码不?贴出来看看,或是看看你的logcat
      

  2.   

    需要注意下activity的findViewById方法是跟节点下搜索组件,而ViewGroup(任何布局都从它继承)的findViewById方法则只搜索它的子控件。你确认下,是否正确使用了
      

  3.   

    public View getView(int position, View convertView, ViewGroup parent) {
      View v = (LinearLayout)convertView;
    pos = position;
    is=true;
    if(is==true){
    if (v == null){
    v = View.inflate(context,R.layout.packagelist, null);
    holder = new ViewHolder(v);
    v.setTag(holder);

    else if(is==false){
    v.setVisibility(View.INVISIBLE);
    v1.setVisibility(View.VISIBLE);
    v1 =base.findViewById(R.id.second);

    }
    }
    public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.apkicon:
    is=false;
    System.out.println("icon is click");
    System.out.println(is);

    break;
    点击后还没有显示出来,是哪写错了吗?
      

  4.   

    你的界面在listview中,你想通过外部的button去操作你的listview中的界面就必须刷新一下listview。
    刷新代码貌似有2-3种。你baidu下吧。周一没精神。。不想找代码
      

  5.   

    public View getView(int position, View convertView, ViewGroup parent) {
      View v = convertView;
    pos = position;
    is=true;
    if(is==true){
    if (v == null){
    v = View.inflate(context,R.layout.packagelist, null);
    / 1.setVisibility(View.GONE);
    holder = new ViewHolder(v);
    v.setTag(holder);

    else if(is==false){
    System.out.println("else if is or not excute");
    notifyDataSetChanged();
    v.setVisibility(View.GONE);
    v1.setVisibility(View.VISIBLE);
    v1 =base.findViewById(R.id.second);

    }public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.apkicon:
    is=false;
    System.out.println("icon is click");
    System.out.println(is);
    if(is==false){
    getView(pos,v1,null);
    }
    还是不行啊,谁帮我看看啊。
      

  6.   

    getView(pos,v1,null);这个不是刷新listview.....
    下面3个你试试
    listview.invalidate()
    and postInvalidate()
    and notifyDataSetChanged();
      

  7.   


    public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    pos = position;
    is=true;
    if(is==true){
    if (v == null){
    v = View.inflate(context,R.layout.packagelist, null);
    / 1.setVisibility(View.GONE);
    holder = new ViewHolder(v);
    v.setTag(holder);
    }
    is = true ;
    你下面的 else if (is == false) ;执行不了。
      

  8.   

    好像是这问题嗯。你的代码执行不了哇。
    你把你的is = true ;丢getview外面去
      

  9.   

    if(is==true){
    if (v == null){
    v = View.inflate(context,R.layout.packagelist, null);
    / 1.setVisibility(View.GONE);
    holder = new ViewHolder(v);
    v.setTag(holder);
    }  
    else if(is==false){
    System.out.println("else if is or not excute");
    notifyDataSetChanged();
    v.setVisibility(View.GONE);
    v1.setVisibility(View.VISIBLE);
    v1 =base.findViewById(R.id.second);你仔细把你这里面的 } 搞对称,括号对不上。
      

  10.   

    这个问题已经改了。接着后面报了空指针异常,加了notifyDataSetChanged();去掉v.setVisibility(View.GONE);
    然后可以显示。但是list上notifyDataSetChanged();位置就会改变。这个还不知道怎么解决
      

  11.   

    v = View.inflate(context,R.layout.packagelist, null);用这个代替
    LayoutInflater.from(context).inflate(R.layout.packagelist, null)试试。
    空指针一般就是你在用前没有初始化。
    v1.setVisibility(View.VISIBLE);
    v1 =base.findViewById(R.id.second);
    这个也应该上下调换位置。
      

  12.   

    public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    pos = position;
    is=true;//在外面定义否则无法执行is==false的代码
    if(is==true){
    if (v == null){
    v = View.inflate(context,R.layout.packagelist, null);
    v=LayoutInflater.from(context).inflate(R.layout.packagelist, null)
    / 1.setVisibility(View.GONE);
    holder = new ViewHolder(v);
    v.setTag(holder);
    }  
    else if(is==false){
    System.out.println("else if is or not excute");
    notifyDataSetChanged();
    v.setVisibility(View.GONE);
    v1.setVisibility(View.VISIBLE); 
    v1 =base.findViewById(R.id.second);}public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.apkicon:
    is=false;
    System.out.println("icon is click");
    System.out.println(is);
    if(is==false){
    getView(pos,v1,null);
    }