Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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 在使用json填充的listView上设置onClickListener_Android_Json_Listview - Fatal编程技术网

Android 在使用json填充的listView上设置onClickListener

Android 在使用json填充的listView上设置onClickListener,android,json,listview,Android,Json,Listview,我实现了一个多栏列表视图,该视图由json数据填充。我还为它设置了一个onClickListener。但在运行应用程序时,当我单击listView时,我只能获取列表的第一项 我想要实现的是,当我单击listView中的任何项目时,我应该能够获得行项目。我使用的代码如下 Adapter.java private Activity activity; private static ArrayList prefrenceid,partnerid; private static LayoutInflat

我实现了一个多栏列表视图,该视图由json数据填充。我还为它设置了一个onClickListener。但在运行应用程序时,当我单击listView时,我只能获取列表的第一项

我想要实现的是,当我单击listView中的任何项目时,我应该能够获得行项目。我使用的代码如下

Adapter.java

private Activity activity;
private static ArrayList prefrenceid,partnerid;
private static LayoutInflater inflater = null;
public CompanyRegistrationAdapter(Activity a, ArrayList pref, ArrayList part) {
    activity = a;
    this.prefrenceid = pref;
    this.partnerid=part;


    inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
    return prefrenceid.size();

}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.company_registation_adapter, null);

    TextView preferences = (TextView) vi.findViewById(R.id.textView20);
    String song = prefrenceid.get(position).toString();
    preferences.setText(song);


    TextView partner = (TextView) vi.findViewById(R.id.textView21);
    String song2 = partnerid.get(position).toString();
    partner.setText(song2);

    return vi;

}
MainActivity.java

AsyncHttpClient usercheck = new AsyncHttpClient();
    usercheck.get("REST URL", new AsyncHttpResponseHandler() {
        public void onSuccess(String response) {
            try {
                progressDialog.hide();
                JSONObject obj3 = new JSONObject(response);
                final JSONArray jsonArray3 = obj3.getJSONArray("REST Method");
                int length3 = jsonArray3.length();
                if (length3 != 0) {
                    for (int i = 0; i < length3; i++) {
                        JSONObject user3 = jsonArray3.getJSONObject(i);
                        preference_array.add(user3.getString("GCP_NUMBER").toString());
                        partner_array.add(user3.getString("COMPANY_NAME").toString());
                    }
                    adapter = new CompanyRegistrationAdapter(CompanyRegistrationResult.this, preference_array, partner_array);
                    fav.setAdapter(adapter);
                    fav.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                            try {
                                String iPartnerID = jsonArray3.getJSONObject(position).getString("ID");
                                Toast.makeText(getApplicationContext(),iPartnerID,Toast.LENGTH_SHORT).show();
                                Intent compRegister=new Intent(getApplicationContext(),CompanyRegistration.class);
                                compRegister.putExtra("gcp", gcp);
                                compRegister.putExtra("compName", compName);
                                startActivity(compRegister);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            String gcp=((TextView) findViewById(R.id.textView20)).getText().toString();
                            String compName=((TextView) findViewById(R.id.textView21)).getText().toString();

                        }
                    });

                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
AsyncHttpClient usercheck=new AsyncHttpClient();
get(“RESTURL”,新的AsyncHttpResponseHandler()){
成功时公共无效(字符串响应){
试一试{
progressDialog.hide();
JSONObject obj3=新JSONObject(响应);
final JSONArray jsonArray3=obj3.getJSONArray(“REST方法”);
int length3=jsonArray3.length();
如果(长度3!=0){
对于(int i=0;i
在适配器中的getItem方法中,您只返回作为单击项索引的int,而不是实际项。您应该执行preferenceid.get(position);为什么不从模型中获取它…preference\u array.get(position).toString()这与您在textview上输入的值相同…非常感谢Fustigador和Nanoc。我让它工作了..在适配器中的getItem方法中,您只返回int,它是单击项的索引,而不是实际项。您应该执行preferenceid.get(position);为什么不从模型中获取它…preference_array.get(position).toString()它的值与你在文本视图上的值相同…非常感谢Fustigador和Nanoc。我让它工作了。。