2012-04-17 135 views
1

我可以在getView()方法中调用setContentView()方法吗?如果是这样,怎么样?
其实,我有一个列表,我正在使用它来显示一些视图,如TextView,Imageview和Button。现在在一个按钮点击事件我想展示一些其他视图。这是我的代码:我可以在Android的getView()方法中调用setContentView()方法吗?

Button select = (Button)findViewById(R.id.button1); 
select.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
    setContentView(R.layout.search); 
    } 
}); 

但它给我一个语法错误,因为我在BaseAdapter类中使用此方法。

有没有其他方法可以做到这一点?

在此先感谢。

+0

尝试'YourCurrentActivity.this.setContentView(R.layout.search);' – 2012-04-17 09:37:22

回答

0
getView(...)

,创造row布局和投入的ImageView,TextView的,按钮

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     View v = convertView; 

     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) CurrentContext 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.row, null); 

     } 
    } 

看这http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

+0

如何在这里设置我的第二个布局文件? – Neha 2012-04-17 13:31:24

+0

R.layout.row是列表行第二个列表行 – 2012-04-17 13:38:56

1

如果要扩展底座适配器类,那么你可以通过你的情况下在你的扩展适配器类。然后,您可以使用该上下文来设置您的内容视图。

context.setContentView(R.layout.search);

另一种方法是您可以使用广播接收器并将广播从适配器类发送到您的活动课程,并且您可以更新活动。

我没有试过第一种方法,但我尝试过第二种方法来改变acitvity中的视图。

+0

我试过你的第一个方法,它的工作正常。感谢您的解决方案。 – Neha 2012-04-17 13:30:14

+0

当你找到答案时,你应该标记为答案,因为别人不应该浪费时间来解决你的问题......并且欢迎 – 2012-04-18 04:56:57

相关问题