발생되었을때 다른무엇을 하고 싶은데
listView.setOnItemClickListener
protected void onListItemClick(ListView l, View v, int position, long id) {
둘다 반응하지를 않습니다
왜이런지 알수가 없네요
혹시 왜그런지 아시면 답변 부탁드립니다
밑에 소스 첨부 하였습니다
public class JAEWON extends ListActivity {
ProgressDialog mProgress;
DownThread mThread;
String searchTxt="";
EditText et;
private String SaveThumbnail[];
private ArrayList<MyItem> arr_MyItem=null;
private MyItem MyItem=null;
private URL url = null;
private String ConnectUrl="";
private String startTag="";
private MyListAdapter adapter;
private TextView tv;
private ImageView iv;
private Button btn;
//=============================
private int strStart = 1; //시작
private int strDisplay = 15;//보여줄 목록 개수
ListView listView;
private int nTotal = 0;
private int mLexSIndex = 0;
private String mTitle = "";
private String mThumbnail = "";
private String mLink = "";
private String mText;
//=============================
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText)findViewById(R.id.searchTxt);
et.setText(searchTxt);
et.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String str = et.getText().toString();
if(str != "")
et.setText("");
}
});
btn = (Button) findViewById(R.id.searchBtn);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
arr_MyItem = new ArrayList<MyItem>();
adapter = new MyListAdapter(JAEWON.this, R.layout.row, arr_MyItem);
adapter.clear();
searchTxt = et.getText().toString();
if (searchTxt.equals("")||searchTxt == null) {
Toast.makeText(getBaseContext(),"검색어가 없습니다", Toast.LENGTH_LONG).show();
}
else {
btn.setFocusable(false);
mProgress = ProgressDialog.show(JAEWON.this, "", "loading...",true);
mThread = new DownThread(1);
mThread.start();
}
}
});
listView = (ListView)this.getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
System.out.println("=========clickclickclickclick======");
}
});
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if(nTotal > totalItemCount){
if(firstVisibleItem + visibleItemCount == totalItemCount){
strStart = strStart + strDisplay;
//XMLParse3();
//setListAdapter(mNewsAdapter);
//setSelection(firstVisibleItem);
mProgress = ProgressDialog.show(JAEWON.this, "", "loading...",true);
GetSearchList(strStart);
mAfterDown.sendEmptyMessage(1);
setSelection(firstVisibleItem);
}
}
//Toast.makeText(NaverSearchToolArray.this, "Total : " + nTotal + ", Curr : " + totalItemCount, 1);
//editText.setText("Total : " + nTotal + ", Curr : " + totalItemCount);
}
});
}
/**
* XmlPullParser를 이용 xml을 읽는다.
*/
void GetSearchList(int position){
strStart = position;
searchTxt = et.getText().toString();
String encode_searchTxt="";
encode_searchTxt = URLEncoder.encode(searchTxt);
ConnectUrl = "http://openapi.naver.com/search?key=29b0a07ddfe7502eb2d0c585cd448a32&query="
+ encode_searchTxt + "&target=image&sort=sim&start="+strStart+"&display=" + strDisplay;
System.out.println("ConnectUrl : "+ConnectUrl );
System.out.println("encode_searchTxt : "+encode_searchTxt);
try {
URL url = new URL(ConnectUrl);
InputStream in = url.openStream();
InputStreamReader reader = new InputStreamReader(in, "utf-8");
StringBuffer sb = new StringBuffer();
char[] cbuf = new char[512];
int len = 0;
while((len = reader.read(cbuf, 0, cbuf.length)) > 0)
{
sb.append(cbuf, 0, len);
}
parse(sb.toString());
}
catch (Exception e1) {
e1.printStackTrace();
}
}
public void parse(String xmlContent)
{
clear();
mText = xmlContent == null ? "" : xmlContent;
boolean isFirst = true;
mTitle = next("<title>", "</title>");
nTotal = Integer.parseInt(next("<total>", "</total>"));
mLink = next("<link>", "</link>");
mThumbnail = next("<thumbnail>", "</thumbnail>");
SaveThumbnail = new String[nTotal];
System.out.println("nTotal : "+nTotal);
while(mTitle != ""){
if(!isFirst){
MyItem = new MyItem();
MyItem.title= mTitle.replace("<", "<").replace(">", ">").replace("<b>", "").replace("</b>", "").replace("<strong>", "").replace("</strong>", "").replace("&", "").replace("quot;","").replace("#039;" ,"").replace("#39;","");
MyItem.link= mLink;
MyItem.thumbnail = mThumbnail.replace("<", "<").replace(">", ">").replace("<b>", "").replace("</b>", "").replace("<strong>", "").replace("</strong>", "").replace("&", "");
arr_MyItem.add(MyItem);
}
isFirst = false;
mTitle = next("<title>", "</title>");
mLink = next("<link>", "</link>");
mThumbnail = next("<thumbnail>", "</thumbnail>");
}
}
protected String next(String strStart, String strEnd)
{
int i1 = mText.indexOf(strStart, mLexSIndex);
int i2 = mText.indexOf(strEnd, mLexSIndex);
if (i1 < mLexSIndex || i1 >= i2) // not found.
return "";
String ret = mText.substring(i1 + strStart.length(), i2);
mLexSIndex = i2 + strEnd.length();
return ret;
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(JAEWON.this, "Click", 1000);
Log.e("==", "===========");
System.out.println("========click l: "+l+" v:"+v+" position:"+position+ " id:"+id);
Log.e("==", "===========");
}
public void clear()
{
nTotal = 0;
mTitle = "";
mLink = "";
mThumbnail = "";
mLexSIndex = 0;
}
/**
* adapter
*/
class MyListAdapter extends ArrayAdapter {
Context maincon;
LayoutInflater Inflater;
ArrayList<MyItem> arrMyItem;
int layout;
MyItem getMyItem;
public MyListAdapter(Context context, int textViewResourceId
, ArrayList<MyItem> _arrMyItem) {
super(context, textViewResourceId, _arrMyItem);
this.arrMyItem = _arrMyItem;
this.maincon = context;
Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layout = textViewResourceId;
getMyItem = new MyItem();
}
/**
* 항목하나를 출력하기위한 뷰생성하여 리턴
* ListView가 각 항목을 출력할때마다 호출한다
* position : 생성할 항목의 순서값
* convertView : 이전에 생성된 차일드뷰
* parent : 뷰의 부모 즉 리스트뷰
*/
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
getMyItem = (MyItem)arrMyItem.get(position);
if (getMyItem != null) {
tv = (TextView) v.findViewById(R.id.title);
iv = (ImageView) v.findViewById(R.id.thumb);
if(tv != null){
// tv.setText(Html.fromHtml("<a href='" + getMyItem.link
// + "'>" + getMyItem.title+ "</a>"));
tv.setText( getMyItem.title);
tv.setMovementMethod(LinkMovementMethod.getInstance());
}
if (iv != null) {
if(getMyItem.thumbnail == null){
iv.setVisibility(0);
}else{
if(SaveThumbnail[position] == null){
iv.setVisibility(1);
iv.setImageResource(R.drawable.icon);
DrawableManager dm = new DrawableManager();
dm.fetchDrawableOnThread(getMyItem.thumbnail, iv);
SaveThumbnail[position]=getMyItem.thumbnail;
}
else{
try {
iv.setImageBitmap(getRemoteImage(new URL(SaveThumbnail[position])));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
return v;
}
}
/**
*URL을 bitmap으로
*/
public Bitmap getRemoteImage(final URL aURL) {
try {
final URLConnection conn = aURL.openConnection();
conn.connect();
final BufferedInputStream bis = new BufferedInputStream(conn
.getInputStream());
final Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
return bm;
} catch (IOException e) {
// Log.d("DEBUGTAG", "Oh noooz an error...");
}
return null;
}
/**
* 백그라운드에서 작업할 쓰레드
*/
class DownThread extends Thread {
private int startPoint=0;
public DownThread(int _startPoint){
this.startPoint=_startPoint;
}
public void run(){
try{
GetSearchList(startPoint);
// //핸들러에 메세지를 보낸다
mAfterDown.sendEmptyMessage(0);
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 핸들러
*/
Handler mAfterDown = new Handler(){
public void handleMessage(Message msg){
// setListAdapter(adapter);
// System.out.println("handler arr_MyItem : "+arr_MyItem);
// adapter = new MyListAdapter(JAEWON.this, R.layout.row, arr_MyItem);
switch(msg.what){
case 0:
adapter.notifyDataSetChanged();
setListAdapter(adapter);
mProgress.dismiss();
break;
case 1:
mProgress.dismiss();
break;
}
}
};
}