Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从另一个类访问onCreate中的ArrayAdapter 公共类控制器扩展活动{ /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Context currentContext=这个; 最终BlinkAPI BlinkAPI=新的BlinkAPI(当前上下文); lvRadio=(ListView)findViewById(R.id.ListViewRadio); } ... } //*********************************** //单独文件 公共类应用程序接口{ 私有静态上下文mContext; 静态列表视图; 公共BlinkAPI(上下文ctx) { BlinkAPI.mContext=ctx; radiov=(ListView)((活动)mContext.findViewById(R.id.ListViewRadio); } 私有静态void updateRadioTitles(){ radioTitleAdapter=(ArrayAdapter)radiov.getAdapter(); …//得到Titlester等 放射性滴定仪添加(滴定仪); radioTitleAdapter.notifyDataSetChanged(); }_Android_Adapter_Android Context - Fatal编程技术网

Android 从另一个类访问onCreate中的ArrayAdapter 公共类控制器扩展活动{ /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Context currentContext=这个; 最终BlinkAPI BlinkAPI=新的BlinkAPI(当前上下文); lvRadio=(ListView)findViewById(R.id.ListViewRadio); } ... } //*********************************** //单独文件 公共类应用程序接口{ 私有静态上下文mContext; 静态列表视图; 公共BlinkAPI(上下文ctx) { BlinkAPI.mContext=ctx; radiov=(ListView)((活动)mContext.findViewById(R.id.ListViewRadio); } 私有静态void updateRadioTitles(){ radioTitleAdapter=(ArrayAdapter)radiov.getAdapter(); …//得到Titlester等 放射性滴定仪添加(滴定仪); radioTitleAdapter.notifyDataSetChanged(); }

Android 从另一个类访问onCreate中的ArrayAdapter 公共类控制器扩展活动{ /**在首次创建活动时调用*/ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Context currentContext=这个; 最终BlinkAPI BlinkAPI=新的BlinkAPI(当前上下文); lvRadio=(ListView)findViewById(R.id.ListViewRadio); } ... } //*********************************** //单独文件 公共类应用程序接口{ 私有静态上下文mContext; 静态列表视图; 公共BlinkAPI(上下文ctx) { BlinkAPI.mContext=ctx; radiov=(ListView)((活动)mContext.findViewById(R.id.ListViewRadio); } 私有静态void updateRadioTitles(){ radioTitleAdapter=(ArrayAdapter)radiov.getAdapter(); …//得到Titlester等 放射性滴定仪添加(滴定仪); radioTitleAdapter.notifyDataSetChanged(); },android,adapter,android-context,Android,Adapter,Android Context,此代码崩溃如果您有权访问列表视图您可以使用radiov.getAdapter()您可以通过调用radiov.getAdapter()来获取适配器 但您不能修改它(添加\删除项)。要修改它,请创建并设置新适配器,或编写ArrayAdapter的扩展并向其添加方法setObjects。首先:raukodraug和Flavio是对的!您不能调用: public class controller extends Activity { /** Called when the activity is fi

此代码崩溃

如果您有权访问
列表视图
您可以使用
radiov.getAdapter()
您可以通过调用radiov.getAdapter()来获取适配器


但您不能修改它(添加\删除项)。要修改它,请创建并设置新适配器,或编写ArrayAdapter的扩展并向其添加方法setObjects。

首先:raukodraug和Flavio是对的!您不能调用:

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(); 
}
获取ListView的适配器

但是,您说过,您喜欢更新适配器。如果您想这样做,您的活动需要将该适配器作为变量保存,如下所示:

myAdapter = radioLV.getAdapter();
如果现在要更新适配器,可以调用以下方法(确保在UI线程上进行这些调用,否则不会更新listview):


myAdapter构造函数的上下文?这不起作用ArrayAdapter RadioTitLeadAdapter=new ArrayAdapter(null,android.R.layout.simple_expandable_list_item_1,radioTitleArrayList);当我尝试将适配器添加到ListView lvRadio时,程序在该点崩溃,可能是因为您没有在UI线程中执行此操作?请尝试Radiov.post(new Runnable(public void run(){radiov.setAdapter(..);radioTitleAdapter.add(titleStr);}}})
private Adapter myAdapter;
myAdapter.add(newItem); // whatever item you might want to add
myAdapter.notifyDataSetChanged();