Android的ListView控件itemClick在 [英] Android ListView itemClick

查看:117
本文介绍了Android的ListView控件itemClick在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图做一个的ListView 元素的点击,但我发现 ClassCastException异常。这里是code:

 公共类MenuActivity延伸活动{@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);    的setContentView(R.layout.menu);    Button按钮=(按钮)findViewById(R.id.button1);
    button.setOnClickListener(新OnClickListener(){        @覆盖
        公共无效的onClick(查看为arg0){
            出口();        }
    });    TextView的TITLE_1 =(的TextView)findViewById(R.id.textView_Menu_Title_1);
    title_1.setText(德codeString的(R.string.menu_title1));
    title_1.setTypeface(getTitleTypeface());    TextView的TITLE_2 =(的TextView)findViewById(R.id.textView_Menu_Title_2);
    title_2.setText(德codeString的(R.string.menu_title2));
    title_2.setTypeface(getTitleTypeface());    ListView控件列表=(ListView控件)findViewById(R.id.listView_Menu);    的String []项目= {德codeString的(R.string.menu_igraj)
                        德codeString的(R.string.menu_rezultati)
                        德codeString的(R.string.menu_postavke)
                        德codeString的(R.string.menu_pomoc)
                        德codeString的(R.string.menu_izlaz)};     CustomAdapter适配器=新CustomAdapter(项目);
     list.setAdapter(适配器);     list.setOnItemClickListener(新AdapterView.OnItemClickListener(){            公共无效onItemClick(适配器视图<>母公司,查看itemClicked,INT
                                                    位置,长的id){                TextView中的TextView =(TextView中)itemClicked;
                字符串strText的= textView.getText()的toString()。                如果(strText.equalsIgnoreCase(getResources()。的getString(R.string.menu_igraj)))
                    {
                    startActivity(新意图(MenuActivity.this,GameActivity.class));
                }否则如果
                    (strText.equalsIgnoreCase(getResources()。的getString(R.string.menu_pomoc))){
                    startActivity(新意图(MenuActivity.this,HelpActivity.class));
                }否则如果
                   (strText.equalsIgnoreCase(getResources()。的getString(R.string.menu_postavke))){
                    startActivity(新意图(MenuActivity.this,SettingsActivity.class));
                }否则如果
                  (strText.equalsIgnoreCase(getResources()。的getString(R.string.menu_rezultati))){
                    startActivity(新意图(MenuActivity.this,ScoresActivity.class));
                }否则如果
                    (strText.equalsIgnoreCase(getResources()。的getString(R.string.menu_izlaz))){
                    出口();
                }            }
        });}私人无效的exit(){
    意图startMain =新意图(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    //startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(startMain);
    完();
}私人字样getTitleTypeface(){
    字体TF = Typeface.createFromAsset(getBaseContext()。getAssets(),
            德codeString的(R.string.tf_angelic));
    返回TF;
}私人字样getListTypeface(){
    字体TF = Typeface.createFromAsset(getBaseContext()。getAssets(),
            德codeString的(R.string.tf_jennifer));
    返回TF;
}私人字符串德codeString的(INT ID){
    。串串= getResources()的getString(ID);
    返回的字符串;
}类CustomAdapter扩展了BaseAdapter {    的String [] m_items;
    LayoutInflater m_inflater;    公共CustomAdapter(字符串项目[]){        m_items =物品;
        m_inflater = LayoutInflater.from(MenuActivity.this);    }    @覆盖
    公众诠释的getCount(){        返回m_items.length;
    }    @覆盖
    公共对象的getItem(INT为arg0){        返回将arg0;
    }    @覆盖
    众长getItemId(INT为arg0){        返回0;
    }    @覆盖
    公共查看getView(INT位置,查看convertView,父母的ViewGroup){
        ViewHolder持有人;
        如果(convertView == NULL)
        {
            持有人=新ViewHolder();
            convertView = m_inflater.inflate(R.layout.list_item,NULL);
            holder.tv =(TextView中)convertView.findViewById(R.id.textView_List_Item);
            holder.tv.setTextColor(getResources()的getColor(R.color.black_overlay));
            holder.tv.setTypeface(getListTypeface());
            convertView.setTag(保持器);
        }
        其他{
            支架=(ViewHolder)convertView.getTag();
        }
        holder.tv.setText(m_items [位置]);
        返回convertView;
    }}类ViewHolder {
    TextView的电视;
}

}

我也tryed与 ArrayAdapter ,但它不会工作,我总是得到一个RuntimeException。当我调试它,它表明该行:的TextView的TextView =(TextView中)itemClicked ;越来越错误。

的logcat的:

  12月10日至23日:59:33.356:E / ActivityThread(638):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
12月10日至23日:59:33.356:E / ActivityThread(638):在java.lang.Thread.run(Thread.java:856)
12月10日至23日:59:33.387:E / StrictMode(638):空
12月10日至23日:59:33.387:E / StrictMode(638):android.app.ServiceConnectionLeaked:服务com.android.exchange.ExchangeService渗漏ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d50490这原是绑定这里
10-23 12:59:33.387:E / StrictMode(638):在android.app.LoadedApk $ ServiceDispatcher<&初始化GT;(LoadedApk.java:969)
12月10日至23日:59:33.387:E / StrictMode(638):在android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
12月10日至23日:59:33.387:E / StrictMode(638):在android.app.ContextImpl.bindService(ContextImpl.java:1418)
12月10日至23日:59:33.387:E / StrictMode(638):在android.app.ContextImpl.bindService(ContextImpl.java:1407)
12月10日至23日:59:33.387:E / StrictMode(638):在android.content.ContextWrapper.bindService(ContextWrapper.java:473)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.exchange.ExchangeService $ 7.run(ExchangeService.java:1856)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:551)
12月10日至23日:59:33.387:E / StrictMode(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:549)
12月10日至23日:59:33.387:E / StrictMode(638):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
12月10日至23日:59:33.387:E / StrictMode(638):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
12月10日至23日:59:33.387:E / StrictMode(638):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12月10日至23日:59:33.387:E / StrictMode(638):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
12月10日至23日:59:33.387:E / StrictMode(638):在java.lang.Thread.run(Thread.java:856)
12月10日至23日:59:33.387:W / ActivityManager(278):解除绑定失败:无法找到android.os.BinderProxy@40fe0b80连接
12月10日至23日:59:33.406:E / ActivityThread(638):服务com.android.exchange.ExchangeService渗漏,最初这里必然ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70
12月10日至23日:59:33.406:E / ActivityThread(638):android.app.ServiceConnectionLeaked:服务com.android.exchange.ExchangeService渗漏ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70这原是绑定这里
10-23 12:59:33.406:E / ActivityThread(638):在android.app.LoadedApk $ ServiceDispatcher<&初始化GT;(LoadedApk.java:969)
12月10日至23日:59:33.406:E / ActivityThread(638):在android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
12月10日至23日:59:33.406:E / ActivityThread(638):在android.app.ContextImpl.bindService(ContextImpl.java:1418)
12月10日至23日:59:33.406:E / ActivityThread(638):在android.app.ContextImpl.bindService(ContextImpl.java:1407)
12月10日至23日:59:33.406:E / ActivityThread(638):在android.content.ContextWrapper.bindService(ContextWrapper.java:473)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.exchange.ExchangeService $ 7.run(ExchangeService.java:1850)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:551)
12月10日至23日:59:33.406:E / ActivityThread(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:549)
12月10日至23日:59:33.406:E / ActivityThread(638):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
12月10日至23日:59:33.406:E / ActivityThread(638):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
12月10日至23日:59:33.406:E / ActivityThread(638):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12月10日至23日:59:33.406:E / ActivityThread(638):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
12月10日至23日:59:33.406:E / ActivityThread(638):在java.lang.Thread.run(Thread.java:856)
12月10日至23日:59:33.506:E / StrictMode(638):空
12月10日至23日:59:33.506:E / StrictMode(638):android.app.ServiceConnectionLeaked:服务com.android.exchange.ExchangeService渗漏ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70这原是绑定这里
10-23 12:59:33.506:E / StrictMode(638):在android.app.LoadedApk $ ServiceDispatcher<&初始化GT;(LoadedApk.java:969)
12月10日至23日:59:33.506:E / StrictMode(638):在android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
12月10日至23日:59:33.506:E / StrictMode(638):在android.app.ContextImpl.bindService(ContextImpl.java:1418)
12月10日至23日:59:33.506:E / StrictMode(638):在android.app.ContextImpl.bindService(ContextImpl.java:1407)
12月10日至23日:59:33.506:E / StrictMode(638):在android.content.ContextWrapper.bindService(ContextWrapper.java:473)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.exchange.ExchangeService $ 7.run(ExchangeService.java:1850)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:551)
12月10日至23日:59:33.506:E / StrictMode(638):在com.android.emailcommon.utility.Utility $ 2.doInBackground(Utility.java:549)
12月10日至23日:59:33.506:E / StrictMode(638):在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
12月10日至23日:59:33.506:E / StrictMode(638):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
12月10日至23日:59:33.506:E / StrictMode(638):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12月10日至23日:59:33.506:E / StrictMode(638):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:573)
12月10日至23日:59:33.506:E / StrictMode(638):在java.lang.Thread.run(Thread.java:856)

list_item.xml:

 <?XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent><的TextView
    机器人:ID =@ + ID / textView_List_Item
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignParentTop =真
    机器人:layout_centerHorizo​​ntal =真
    机器人:文字=测试
    机器人:TEXTSIZE =@扪/ list_item_dim/>< / RelativeLayout的>


解决方案

1)更改customAdapter类的方法的getItem

  // CustomAdapter
@覆盖
公共对象的getItem(INT为arg0){
    //返回为arg0;
    返回m_items [为arg0]
}

2)更改onItemClicked逻辑;

  list.setOnItemClickListener(新AdapterView.OnItemClickListener(){
     公共无效onItemClick(适配器视图<>母公司,查看itemClicked,INT位置,长的id){
          CustomAdapter customAdapter =(CustomAdapter)parent.getAdapter();
          字符串selectedText =(字符串)customAdapter.getItem(位置);
          //这里用你选定的文本
     }
}

这将解决您的问题。

I'm trying to make a ListView elements clickable but I'm getting ClassCastException. Here is the code:

public class MenuActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.menu);

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            exit();

        }
    });

    TextView title_1 = (TextView) findViewById(R.id.textView_Menu_Title_1);
    title_1.setText(decodeString(R.string.menu_title1));
    title_1.setTypeface(getTitleTypeface());

    TextView title_2 = (TextView) findViewById(R.id.textView_Menu_Title_2);
    title_2.setText(decodeString(R.string.menu_title2));
    title_2.setTypeface(getTitleTypeface());

    ListView list = (ListView)findViewById(R.id.listView_Menu);

    String[] items = {  decodeString(R.string.menu_igraj),
                        decodeString(R.string.menu_rezultati),
                        decodeString(R.string.menu_postavke),
                        decodeString(R.string.menu_pomoc),
                        decodeString(R.string.menu_izlaz) };

     CustomAdapter adapter = new CustomAdapter(items);
     list.setAdapter(adapter);

     list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View itemClicked, int 
                                                    position, long id) {

                TextView textView = (TextView) itemClicked;                 
                String strText = textView.getText().toString();

                if (strText.equalsIgnoreCase(getResources().getString(R.string.menu_igraj)))    
                    {
                    startActivity(new Intent(MenuActivity.this, GameActivity.class));
                } else if 
                    (strText.equalsIgnoreCase(getResources().getString(R.string.menu_pomoc))) {
                    startActivity(new Intent(MenuActivity.this, HelpActivity.class));
                } else if 
                   (strText.equalsIgnoreCase(getResources().getString(R.string.menu_postavke))) {
                    startActivity(new Intent(MenuActivity.this, SettingsActivity.class));
                } else if 
                  (strText.equalsIgnoreCase(getResources().getString(R.string.menu_rezultati))) {
                    startActivity(new Intent(MenuActivity.this, ScoresActivity.class));
                } else if 
                    (strText.equalsIgnoreCase(getResources().getString(R.string.menu_izlaz))) {
                    exit();
                }

            }
        });

}

private void exit() {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);
    //startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(startMain);
    finish();
}

private Typeface getTitleTypeface() {
    Typeface tf = Typeface.createFromAsset(getBaseContext().getAssets(), 
            decodeString(R.string.tf_angelic));
    return tf;
}

private Typeface getListTypeface() {
    Typeface tf = Typeface.createFromAsset(getBaseContext().getAssets(),  
            decodeString(R.string.tf_jennifer));
    return tf;
}

private String decodeString(int id) {
    String string = getResources().getString(id);
    return string;
}

class CustomAdapter extends BaseAdapter {

    String[] m_items;
    LayoutInflater m_inflater;

    public CustomAdapter(String items[]) {

        m_items = items;
        m_inflater = LayoutInflater.from(MenuActivity.this);

    }

    @Override
    public int getCount() {

        return m_items.length;
    }

    @Override
    public Object getItem(int arg0) {

        return arg0;
    }

    @Override
    public long getItemId(int arg0) {

        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView==null)
        {
            holder = new ViewHolder();
            convertView = m_inflater.inflate(R.layout.list_item, null);             
            holder.tv = (TextView) convertView.findViewById(R.id.textView_List_Item);
            holder.tv.setTextColor(getResources().getColor(R.color.black_overlay));
            holder.tv.setTypeface(getListTypeface());
            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder)convertView.getTag();              
        }
        holder.tv.setText(m_items[position]);
        return convertView;
    }

}

class ViewHolder {
    TextView tv;
}

}

I also tryed with ArrayAdapter but it wont work, i always get a runtimeException. When i debug it, it shows this line: TextView textView = (TextView) itemClicked; is getting an error.

The logcat:

10-23 12:59:33.356: E/ActivityThread(638):  at      java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-23 12:59:33.356: E/ActivityThread(638):  at java.lang.Thread.run(Thread.java:856)
10-23 12:59:33.387: E/StrictMode(638): null
10-23 12:59:33.387: E/StrictMode(638): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d50490 that was originally bound here
10-23 12:59:33.387: E/StrictMode(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
10-23 12:59:33.387: E/StrictMode(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
10-23 12:59:33.387: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
10-23 12:59:33.387: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
10-23 12:59:33.387: E/StrictMode(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
10-23 12:59:33.387: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
10-23 12:59:33.387: E/StrictMode(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-23 12:59:33.387: E/StrictMode(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-23 12:59:33.387: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-23 12:59:33.387: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-23 12:59:33.387: E/StrictMode(638):  at java.lang.Thread.run(Thread.java:856)
10-23 12:59:33.387: W/ActivityManager(278): Unbind failed: could not find connection for android.os.BinderProxy@40fe0b80
10-23 12:59:33.406: E/ActivityThread(638): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70 that was originally bound here
10-23 12:59:33.406: E/ActivityThread(638): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70 that was originally bound here
10-23 12:59:33.406: E/ActivityThread(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
10-23 12:59:33.406: E/ActivityThread(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
10-23 12:59:33.406: E/ActivityThread(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
10-23 12:59:33.406: E/ActivityThread(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
10-23 12:59:33.406: E/ActivityThread(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
10-23 12:59:33.406: E/ActivityThread(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
10-23 12:59:33.406: E/ActivityThread(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-23 12:59:33.406: E/ActivityThread(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-23 12:59:33.406: E/ActivityThread(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-23 12:59:33.406: E/ActivityThread(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-23 12:59:33.406: E/ActivityThread(638):  at java.lang.Thread.run(Thread.java:856)
10-23 12:59:33.506: E/StrictMode(638): null
10-23 12:59:33.506: E/StrictMode(638): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d31c70 that was originally bound here
10-23 12:59:33.506: E/StrictMode(638):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
10-23 12:59:33.506: E/StrictMode(638):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
10-23 12:59:33.506: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
10-23 12:59:33.506: E/StrictMode(638):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
10-23 12:59:33.506: E/StrictMode(638):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
10-23 12:59:33.506: E/StrictMode(638):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
10-23 12:59:33.506: E/StrictMode(638):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-23 12:59:33.506: E/StrictMode(638):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-23 12:59:33.506: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-23 12:59:33.506: E/StrictMode(638):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-23 12:59:33.506: E/StrictMode(638):  at java.lang.Thread.run(Thread.java:856)

list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/textView_List_Item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="test"
    android:textSize="@dimen/list_item_dim" />

</RelativeLayout>

解决方案

1) Change your customAdapter class's getItem method

// CustomAdapter 
@Override
public Object getItem(int arg0) {
    // return arg0;
    return m_items[arg0];
}

2) Change your onItemClicked logic;

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {
          CustomAdapter customAdapter = (CustomAdapter)parent.getAdapter();
          String selectedText = (String)customAdapter.getItem(position);
          // Use your selected text here
     }
}

This will solve your problem.

这篇关于Android的ListView控件itemClick在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆