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();
}
这段代码崩溃了
最佳答案
首先:raukodraug 和 Flavio 是对的!你可以调用:
myAdapter = radioLV.getAdapter();
获取ListView的适配器。
但是你说,你喜欢更新适配器。如果您想这样做,您的 Activity 需要将该适配器作为变量保存,如下所示:
private Adapter myAdapter;
如果您现在想要更新适配器,您可以调用以下方法(确保您在 UI 线程上进行这些调用,否则 ListView 将不会更新):
myAdapter.add(newItem); // whatever item you might want to add
myAdapter.notifyDataSetChanged();
关于android - 从另一个类访问 onCreate 中的 ArrayAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5501871/