我可以在Android的getView()方法中调用setContentView()方法吗?

时间:2012-04-17 09:29:28

标签: android

我可以使用setContentView()方法调用getView()方法吗?如果是这样,怎么样? 实际上,我有一个List,用于显示TextView,Imageview和Button等视图。现在,在按钮单击事件上,我想显示其他一些视图。这是我的代码:

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

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

还有其他办法吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果要扩展基本适配器类,则可以在扩展适配器类中传递上下文。然后,您可以使用该上下文来设置内容视图。

context.setContentView(R.layout.search);

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

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

答案 1 :(得分:0)

getView(...)中创建row布局并放置imageview,textview,Button

@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/