2014-02-25 58 views
0

我有一个包含微调的消费休息服务,并能够动态获取数据的Android项目 问题是它获取数据时,我点击按钮,而不是微调 我试着设置在微调setOnClickListener功能,但它不工作 代码动态微调消费休息服务创建onClickListener问题

private Context mContext=HourlyEntry.this; 
private Spinner s1; 
private String m_DepartmentID=null; 
private ArrayList<String> m_Department_list; 
private ArrayList<String> m_DepartmentID_list; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_hourly_entry); 


    s1=(Spinner)findViewById(R.id.spinner1); 


    s1.setOnClickListener(this); 

} 





    @Override 
    public void onClick(View v) { 


     if (v == s1) 
     { 
      JSONObject login = new JSONObject(); 
     try 
     { 
     login.put("EmployeeID","1"); 
     //login.put("Password", etCountry.getText().toString()); 

     JSONObject finaldata = new JSONObject(); 
     finaldata.put("ProjectRequest", login); 


      final ConnectToServer connect = new ConnectToServer(); 
      connect.extConnectToServer(HourlyEntry.this, 
          new ConnectToServer.Callback() 
      { 
       public void callFinished(String result) 
       { 
        //Toast.makeText(getBaseContext(), result, 
               Toast.LENGTH_LONG).show(); 

        JSONObject resp = null; 
        try 
        { 
         resp = new JSONObject(result); 
         Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show(); 
         JSONObject Login1Result = resp.getJSONObject("ProjectResult"); 
         JSONArray DepartmentDetails = Login1Result.getJSONArray("ProjectDetails"); 
         //String strMessage = Login1Result.getString("message"); 
        Toast.makeText(getBaseContext(), Login1Result.getString("ProjectDetails"), Toast.LENGTH_LONG).show(); 
       // List<String> list = new ArrayList<String>(); 
         if (!Login1Result.getString("ProjectDetails").equalsIgnoreCase("null")) 
        { 
         //JSONArray DepartmentDetails = Login1Result.getJSONArray("ProjectDetails"); 

         m_Department_list = new ArrayList<String>(); 
         m_DepartmentID_list = new ArrayList<String>(); 
         for (int i = 0; i < DepartmentDetails.length(); i++) 
         { 
          JSONObject m_DepartmentDetails = DepartmentDetails.getJSONObject(i); 
          if (!m_DepartmentDetails.getString("ProjectName").equalsIgnoreCase("null")&& !m_DepartmentDetails.getString("ProjectName").equalsIgnoreCase("")) 
          { 
           //list.add(m_DepartmentDetails.getString("ProjectName")); 
           m_Department_list.add(m_DepartmentDetails.getString("ProjectName")); 
           //Toast.makeText(getBaseContext(), m_DepartmentDetails.getString("ProjectName"), Toast.LENGTH_LONG).show(); 
          } 
          if (!m_DepartmentDetails.getString("ProjectID").equalsIgnoreCase("null")&& !m_DepartmentDetails.getString("ProjectID").equalsIgnoreCase("")) 
          { 
           m_DepartmentID_list.add(m_DepartmentDetails.getString("ProjectID")); 

          } 
         } 
        } 

         s1 = (Spinner) findViewById(R.id.spinner1); 



         final ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, R.layout.spin,m_Department_list); 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

        s1.setAdapter(adapter); 
        if (m_DepartmentID_list.contains(m_DepartmentID)) 
        { 
         s1.setSelection(m_DepartmentID_list.indexOf(m_DepartmentID)); 
        } 
        } 

        catch (final JSONException e) 
        { 

        } 

       } 
        }, "http://aapnapms.azurewebsites.net/Service1/Project", finaldata, 
        "POST"); 
      connect.execute(finaldata); 

     if(!validate()) 
      Toast.makeText(getBaseContext(), "Enter some data !", Toast.LENGTH_LONG).show(); 
     } 
     catch (Exception e) { 
      Log.d("InputStream", e.getLocalizedMessage()); 
     } 


} 
+0

当用户在'Spinner'中选择一个项目时,你想调用休息服务吗? – Apoorv

+0

实际上在这之前有一个登录屏幕,我从那里得到emplyoyee id。根据这个员工ID我填充微调 – user3305582

回答

0

使用

s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 

     } 

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

     } 
    }); 

,而不是

s1.setOnClickListener(this); 
+0

好吧会尝试 AdapterView 类型的方法setOnItemSelectedListener(AdapterView.OnItemSelectedListener)不适用于参数(new OnItemSelectedListener(){}) – user3305582

+0

检查编辑代码 – Sonali8890

+0

哪里做我必须复制此代码来代替s1.setOnClickListener(this); 还是新班? – user3305582