Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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
Java 在Android中,从ArrayList转换为String[]后,会在微调器中填充数组空值_Java_Android_Arraylist_Android Arrayadapter_Android Spinner - Fatal编程技术网

Java 在Android中,从ArrayList转换为String[]后,会在微调器中填充数组空值

Java 在Android中,从ArrayList转换为String[]后,会在微调器中填充数组空值,java,android,arraylist,android-arrayadapter,android-spinner,Java,Android,Arraylist,Android Arrayadapter,Android Spinner,我正在动态填充mysql数据库中的值,并将数据添加到Arraylist中。现在,如果我想在spinner中填充数据,必须将其转换为使用 AidStr是一个arraylist变量,其中包含来自数据库的值 Object[] ObjectList = AidStr.toArray(); String[] StringArray = Arrays.copyOf(ObjectList,ObjectList.length,String[].class); 及 但它不工作,我检查了字符串数组的大小,它

我正在动态填充mysql数据库中的值,并将数据添加到Arraylist中。现在,如果我想在spinner中填充数据,必须将其转换为使用

AidStr是一个arraylist变量,其中包含来自数据库的值

Object[] ObjectList = AidStr.toArray();
  String[] StringArray = Arrays.copyOf(ObjectList,ObjectList.length,String[].class); 

但它不工作,我检查了字符串数组的大小,它在logcat中显示为null,如下所示

System.out.println("Lengtth of an array after convertion:"+stringArr.length);
  System.out.println("Lengtth of an array after convertion AIDSTR:"+AidStr.size());
转换后数组的长度:0 转换后数组的长度AIDSTR:0

当我检查arraylist值时,我在logcat中得到了正确的输出,当我转换为字符串[]时,它的堆栈为空,长度等于0

 System.out.println("AID STRING ALL THE VALUES:"+AidStr);
打印arraylist变量后的Logcat输出

AID STRING ALL THE VALUES: [Apple, Ball, Bat]
请帮助将值转换为字符串[],并将正确的数据动态填充到微调器中

MainActivity.java 

public class MainActivity extends Activity  {

final ArrayList<String> AidStr=new ArrayList<String>();
String php_send = null;
String name="fruits";
@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mer_payment);
  System.out.println("AID STRING ALL THE VALUES ITEMS:"+items);
  new AsyncTaskOperation().execute(php_send);

  /*First method returning null values it is not working */
  Object[] ObjectList = AidStr.toArray();
  String[] StringArray = Arrays.copyOf(ObjectList,ObjectList.length,String[].class);

  /*One more method it is not working */
  String[] stringArr = AidStr.toArray(new String[AidStr.size()]);

  Spinner dropdown = (Spinner)findViewById(R.id.spinner_tag);
  dropdown.setOnItemSelectedListener(this);
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,    android.R.layout.simple_spinner_item, StringArray);
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  dropdown.setAdapter(adapter);

   Button buy_m = (Button)findViewById(R.id.buy_merchan);
  buy_m.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) {
        Intent buy_merchan = new Intent(this,PayActivity.class);
        buy_merchan.putExtra("title", name);
        startActivity(buy_merchan);
    }

  }); 
 }
public class AsyncTaskOperation extends AsyncTask <String, Void, Void>
    {
        @Override
         protected Void doInBackground(String... paramsObj) {
            php_send = "http://localhos/Android/App/mer.php";
            String str = "";
            HttpResponse response;
            HttpClient myClient = new DefaultHttpClient();
            HttpPost myConnection = new HttpPost(php_send);
            try {
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
                nameValuePairs.add(new BasicNameValuePair("name", name));
                myConnection.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                response = myClient.execute(myConnection);
                str = EntityUtils.toString(response.getEntity(), "UTF-8");      
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            String map; 
            try 
            {
                JSONArray data = new JSONArray(str);
                for (int i = 0; i < data.length(); i++) {
                    JSONObject c = data.getJSONObject(i);
                    map = c.getString("variation");
                    AidStr.add(map); //add the values to the arraylist
                }   
            }catch (JSONException e) {
                    e.printStackTrace();
            }
            System.out.println("AID STRING ALL THE VALUES:"+AidStr);

        return null;
        }}}
XML:



这是实现微调器的xml文件

您正在执行在后台运行的异步任务。 把这个代码放在一边 @覆盖 PostExecute上受保护的void

  Object[] ObjectList = AidStr.toArray();
  String[] StringArray = Arrays.copyOf(ObjectList,ObjectList.length,String[].class);

  /*One more method it is not working */
  String[] stringArr = AidStr.toArray(new String[AidStr.size()]);

  Spinner dropdown = (Spinner)findViewById(R.id.spinner_tag);
  dropdown.setOnItemSelectedListener(this);
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,    android.R.layout.simple_spinner_item, StringArray);
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  dropdown.setAdapter(adapter);
Object[]ObjectList=AidStr.toArray();
String[]StringArray=Arrays.copyOf(ObjectList,ObjectList.length,String[].class);
/*还有一种方法不起作用*/
String[]stringArr=AidStr.toArray(新字符串[AidStr.size()]);
微调器下拉列表=(微调器)findViewById(R.id.Spinner\u标记);
setOnItemSelectedListener(此);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,StringArray);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
下拉列表.setAdapter(适配器);

转换时,AidStr为空。。。AsyncTask.execute()没有阻止调用,它不会等到doInBackground完成…@Selvin你能告诉我在这段代码中我需要更改什么吗我的朋友
String[] items = { "Apple", "Ball", "Bat"}; instead now it is populating as shown above arraylist values
<Spinner
         android:id="@+id/spinner_tag"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="24dp"
         style="@style/spinner_style"
         android:popupBackground="#D3D5D3"
         android:prompt="@string/select" />
  Object[] ObjectList = AidStr.toArray();
  String[] StringArray = Arrays.copyOf(ObjectList,ObjectList.length,String[].class);

  /*One more method it is not working */
  String[] stringArr = AidStr.toArray(new String[AidStr.size()]);

  Spinner dropdown = (Spinner)findViewById(R.id.spinner_tag);
  dropdown.setOnItemSelectedListener(this);
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,    android.R.layout.simple_spinner_item, StringArray);
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  dropdown.setAdapter(adapter);