2017-07-18 42 views
0

在这里,我保存在阵列listthat数据semesterlist: -微调项是不可见的(数据从服务器推出)的Android

JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, 
      "http://www.mytat.in/API/semester?tokenno=xvub4jey66c7ec6tb4j7g83ghjls353\n", new JSONObject(postParam), 
      new Response.Listener<JSONObject>() { 


       @Override 
       public void onResponse(JSONObject response) { 
        Log.e("response", response.toString()); 



        try { 

         JSONArray output = response.getJSONArray("output"); 
         Log.e("semester",output.toString()); 

         for (int j =0 ; j<output.length();j++) { 

          JSONObject semester = output.getJSONObject(j); 
          Log.e("semester value", semester.toString()); 

          for (int i = 0; i<semester.length();i++){ 

           Map<String,String> map = new HashMap<String,String>(); 
           Iterator iterator = semester.keys(); 
           while (iterator.hasNext()){ 

            String key = (String) iterator.next(); 
            Log.e("key", key); 
            String value = semester.getString(key); 
            Log.e("value", value); 
            if (key .equals("semester")){ 
             semesterlist.add(value); 
             Log.e("semesterlist",semesterlist.toString()); 
            } 

           } 
           break; 


          } 


         } 


        } catch (JSONException e) { 
         Log.e("responsejson", "Error: " + e.toString()); 
        } 
        hidepDialog(); 

       } 
      }, new Response.ErrorListener() 

这里是我的适配器

ArrayAdapter<String> studentsem= new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item,semesterlist); 
    studentsem.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnersemester.setAdapter(studentsem); 

    spinnersemester.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, 
            int position, long id) { 
      Object item = adapterView.getItemAtPosition(position); 
      if (item != null) { 



      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
      // TODO Auto-generated method stub) 

     } 
    }); 

这里是我的布局

<Spinner 
     android:layout_width="match_parent" 
     android:layout_height="35dp" 
     android:id="@+id/spinner_one" 
     android:layout_marginTop="20dp" 
     android:background="@color/loginbg"> 

    </Spinner> 
+1

adapter.notifyDataSetChanged()添加的项目列表后:) –

+0

不工作,实际上数据是在微调填充当我在微调数据点击正显示出,但点击后不可见或者当它填充上微调默认Subhechhu Khanal –

+0

@SubhechhuKhanal我浪费了一天plz有人帮助 –

回答

0

尝试改变getActivity()来getBaseContext()

ArrayAdapter<String> studentsem= new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_item,semesterlist); 
studentsem.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

我试着用你的适配器和它的工作。

+0

对不起,我试过,但没有工作我使用getActivity()。getBaseContext()而不是getActivity()。 –

+0

您可以尝试getBaseContext()而不是getActivity()。getBaseContext(),因为您的问题与使用getApplicationContext()相同。 如果不尝试 ArrayAdapter studentsem =新ArrayAdapter (这一点,android.R.layout.simple_spinner_item,semesterlist);studentsem.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); –

+0

getBaseContext()无法在不使用getActivity()。getBaseContext()的情况下调用片段。它扩展片段不fragmentActivity –

0
try this 


public class MainActivity extends AppCompatActivity { 

    public Spinner spinner; 
    public ArrayList<SpinnerItems> arr_spiner; 
    public SpinnerItems spinnerItem; 
    public SpinnerAdapterClass adapter; 
    public String sSelectedItem; 
    public TextView txtSpinnerValue; 
    public static String sTestData ; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     arr_spiner = new ArrayList<SpinnerItems>(); 
     getData("http://www.mytat.in/API/semester?tokenno=xvub4jey66c7ec6tb4j7g83ghjls353"); 
     initailazation(); 
     spinnerItem = new SpinnerItems(); 
     spinnerItem.setId(null); 
     spinnerItem.setName("Select Semester"); 
     arr_spiner.add(0, spinnerItem); 
     adapter =new SpinnerAdapterClass(MainActivity.this ,arr_spiner); 
     spinner.setAdapter(adapter); 
     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       sSelectedItem = arr_spiner.get(spinner.getSelectedItemPosition()) 
         .getName(); 
       txtSpinnerValue.setText(sSelectedItem); 
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
      } 
     }); 
    } 
    private void initailazation() { 
     spinner=(Spinner)findViewById(R.id.sp_terminal); 
     txtSpinnerValue=(TextView)findViewById(R.id.txt_serSpinnerValue); 
    } 
    public void getData(String s){ 
     StringRequest stringRequest =new StringRequest(Request.Method.GET, s, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonObject = new JSONObject(response); 
        JSONArray jsonArray = jsonObject.getJSONArray("output"); 
        for(int i=0 ; jsonArray.length()>0; i++){ 
         JSONObject data = jsonArray.getJSONObject(i); 
         String semester = data.getString("semester"); 
         String id = data.getString("id"); 
         spinnerItem = new SpinnerItems(); 
         spinnerItem.setId(id); 
         spinnerItem.setName(semester); 
         arr_spiner.add(spinnerItem); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
      } 
     }); 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    }} 

Main Layout file 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="nfcdemo.equesttect.com.spinnerdemo.MainActivity"> 

    <Spinner 
     android:id="@+id/sp_terminal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:id="@+id/txt_serSpinnerValue" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:gravity="center" 
     android:textColor="@color/black" /> 

</RelativeLayout> 

Spinner Item file 

package nfcdemo.equesttect.com.spinnerdemo; 

public class SpinnerItems { 

    private String id = null; 
    private String name = null; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

} 


Spinner Adapter File 

public class SpinnerAdapterClass extends BaseAdapter { 

    ArrayList<SpinnerItems> item_list; 
    Context mContext; 
    ArrayList<String> arrayList_string; 
    public SpinnerAdapterClass(Context context, 
           ArrayList<SpinnerItems> item_list) { 
     super(); 
     this.item_list = item_list; 
     this.mContext = context; 
    } 
    @Override 
    public int getCount() { 
     return item_list.size(); 
    } 
    @Override 
    public Object getItem(int position) { 
     return item_list.get(position); 
    } 
    @Override 
    public long getItemId(int position) { 
     return position; 
    } 
    private class ViewHolder { 
     TextView txt_name; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup container) { 
     ViewHolder viewHolder = null; 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      LayoutInflater mInflater = (LayoutInflater) mContext 
        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.list_raw, 
        container, false); 
      viewHolder = new ViewHolder(); 
      viewHolder.txt_name = (TextView) convertView 
        .findViewById(R.id.txt_name); 
      convertView.setTag(viewHolder); 
     } else { 
      viewHolder = (ViewHolder) convertView.getTag(); 
     } 
     viewHolder.txt_name.setText("" + item_list.get(position).getName()); 
     return convertView; 
    } 
} 

row file 


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center_vertical" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/txt_name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:padding="10dp" 
    android:textAllCaps="true" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textColor="@color/black" /> 
</LinearLayout> 



    <uses-permission android:name="android.permission.INTERNET" /> 

Hope its work 
相关问题