public class controller extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Context currentContext = this;
final BlinkAPI blinkAPI = new BlinkAPI(currentContext);
lvRadio = (ListView)findViewById(R.id.ListViewRadio);
}
...
}
//***********************************
//Separate file
public class BlinkAPI {
private static Context mContext;
static ListView radioLV;
public BlinkAPI( Context ctx)
{
BlinkAPI.mContext = ctx;
radioLV = (ListView )((Activity) mContext).findViewById(R.id.ListViewRadio);
}
private static void updateRadioTitles( ) {
radioTitleAdapter = (ArrayAdapter<String>) radioLV.getAdapter();
...//Get titleStr etc
radioTitleAdapter.add(titleStr);
radioTitleAdapter.notifyDataSetChanged();
}
此代码崩溃
答案 0 :(得分:1)
首先:raukodraug和Flavio是对的!你可以打电话:
myAdapter = radioLV.getAdapter();
获取ListView的适配器。
但是你说,你想更新适配器。如果你想这样做,你的活动需要将该适配器保存为变量,如下所示:
private Adapter myAdapter;
如果您现在想要更新适配器,可以调用以下方法(确保在UI-Thread上进行这些调用,否则列表视图不会更新):
myAdapter.add(newItem); // whatever item you might want to add
myAdapter.notifyDataSetChanged();
答案 1 :(得分:0)
如果您有权访问ListView
,则可以使用radioLV.getAdapter()
答案 2 :(得分:0)
您可以通过调用radioLV.getAdapter()
来获取适配器但你无法修改它(添加\删除项目)。要修改它 - 创建并设置新的适配器,或者编写ArrayAdapter的扩展并向其添加方法setObjects。