Android : Unable to get item in onItemClickListener

on Saturday, August 30, 2014


In my activity, I am using SimpleAdapter for listView. I have added an image and a textView to display in listView. If I remove image, then list works fine. Means I can click on list item and can goto next Activity. But when I added an image, I am unable to click on List's item. Here is my full code below:


Company.java



import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.tutecentral.navigationdrawer.R;

public class Company extends Activity
{


Strings st1=new Strings();
TextView t1,click;
Button b1,b2,b3;
String url,CompName,CompID;
List<String> r1;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_company);

r1 = new ArrayList<String>();
url=st1.getUrl();
connect1();

}


public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
this.finish();
Intent i = new Intent(Company.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
return super.onKeyDown(keyCode, event);
}


private void connect1()
{
String data;
List<String> r = new ArrayList<String>();

List<Map<String, String>> data1 = new ArrayList<Map<String, String>>();
ArrayAdapter<String>adapter=new ArrayAdapter<String>(getApplicationContext(),R.layout.list_text_black,R.id.list_item,r);
final ListView list=(ListView)findViewById(R.id.listView1);

try
{
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url+"Retrive.php?q=cat");

HttpResponse response = client.execute(request);
HttpEntity entity=response.getEntity();
data=EntityUtils.toString(entity);
Log.e("STRING", data);
try
{
JSONArray json=new JSONArray(data);
for(int i=0;i<json.length(); i++)
{
JSONObject obj=json.getJSONObject(i);

CompName=obj.getString("fldCompName");
CompID=obj.getString("fldCompID");

Log.e("STRING", CompName);
Log.e("STRING",CompID);
String word=CompName.substring(0, 1);

r.add(CompName);
r1.add(CompID);
Map<String, String> datum = new HashMap<String, String>();
datum.put("comename",word);// rr1.get(i));
datum.put("CompName",CompName);//rr2.get(i));
data1.add(datum);
SimpleAdapter adapter1 = new SimpleAdapter(getBaseContext(),
data1,R.layout.list_text_black,
new String[] {"comename", "CompName" },
new int[] {R.id.imageView3,R.id.list_item });
list.setAdapter(adapter1);
list.setTextFilterEnabled(true);
list.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
String selected=r1.get(arg2);
Log.e("ID :....: ",selected);
Intent i1=new Intent(Company.this,Category.class);
i1.putExtra("CompID", selected);
startActivity(i1);
return true;
}
});
list.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent,View view, int position, long id)
{
String selected=r1.get(position);

Log.e("ID :....: ",selected);
Intent i1=new Intent(Company.this,Category.class);
i1.putExtra("CompID", selected);
startActivity(i1);
}
});
}
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClientProtocolException e) {
Log.d("HTTPCLIENT", e.getLocalizedMessage());
} catch (IOException e) {
Log.d("HTTPCLIENT", e.getLocalizedMessage());
}
}
}


Please tell me where I am doing wrong in the code.


0 comments:

Post a Comment