2011-09-22 64 views
0

我有一项活动“MyListActivity”。我有一个与之相关的适配器“MyGridAdapter”。它包含一个按钮网格(比如说3)。每个按钮都有一个“OnClickListner()”。 点击第一个按钮,我将不得不采取同样的行动。因此,我决定重新使用同一页面,而不是创建类似的其他活动。含义:我需要调用“MyListActivity”,但有一些修改的参数 - 按钮数量增加等等。 我试图在按钮单击时使用“invalidate()”。但它会重新加载同一页面而不做任何更改。点击按钮拨打/修改当前活动

如何从适配器中的函数调用相同的活动?

我的问题:我创建了另一个“tempActivity”。在我尝试启动之前的活动的函数之一中。 代码里面的 “MyGridAdapter”:

TempActivity temp=new TempActivity(); 
temp.setIntentObj(<parameters>); 

内 “TempActivity”:

Intent intent=new Intent(this,ListActivity.class);  //this gives a "NullPointerException" 
startActivity(intent); 

回答

1

在适配器类中,我们可以使用context.startActivity(intent)开始一个活动我不知道我们可以从适配器访问“start Activity”,但现在它工作的很好!非常感谢您的建议...

+0

你可以,你只需要使用正确的'上下文',在这种情况下,将是你的“活动” –

0

如果我理解正确;您应该更新传递给Adapter的List,然后调用adapter.notifyDataSetChanged()。 (方法名称可能有点不同,我在我的手机上打字并且无法查看)。

您更新的列表必须与提供适配器的列表相同,因此您必须将其引用为您班级的一个属性。

+0

我想我的问题不是很清楚。 我想显示不同的列表,但使用相同的视图。 我必须在运行时执行此操作。我不能说下一个名单将被调用。如果接下来调用相同类型的列表,那么我宁愿使用相同的活动/视图,而不是创建新的视图/活动。 有没有办法做到这一点? – Pallavi

+0

是的,你只是想用不同的数据更新你的当前列表,对吧?按照我上面描述的方式进行操作。 – C0deAttack

+0

但我需要改变一个按钮的列表ONCLICK,这个代码在适配器中。那么如何实现呢? – Pallavi