-1

我试图从我的 listView 中显示一个项目,我在 eclipse 上没有收到任何错误,但是如果我单击一个项目,我的应用程序会指出它正在关闭。

这是我使用 toast 的代码

    private void registerClickCallback() {
    ListView list1 = (ListView) findViewById(R.id.listView1);
    list1.setOnItemClickListener(
       new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked, int postion, long id) {
            TextView textView = (TextView) viewClicked;
            String message = "This is the message: " + textView.getText().toString();

            Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
        }
    });`

这是我列表的阵列适配器

 `private class MyListAdapter extends ArrayAdapter<Messages>{
    public MyListAdapter() {
        super(MainActivity.this, R.layout.item_view, messages);

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // make sure we have a view to work with

        View itemView = convertView;
        if (itemView == null){
            itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);  
        }

        // find the message to work with
        Messages currentMessages = messages.get(position);

        // fill the view for icon (The icon used in my view)
        ImageView imageView = (ImageView)itemView.findViewById(R.id.item_icon);
        imageView.setImageResource(currentMessages.getIconID());

        // the message, setting the message written to the message on my view  
        TextView textMessage = (TextView) itemView.findViewById(R.id.item_message);
        textMessage.setText(currentMessages.getMessage());

        // the sender, filling the sender to the sender on my view
        TextView textSender = (TextView) itemView.findViewById(R.id.item_sender);
        textSender.setText(currentMessages.getSender());

        return itemView; // getting the item view back 
    }
} // custom adapter ends`

我不知道问题出在哪里,任何帮助将不胜感激

4

2 回答 2

2

这条线就在这里

TextView textView = (TextView) viewClicked;

不是你如何获得文本视图

你需要

TextView textView = (TextView) viewClicked.findViewById(r.id.textviewid);
于 2013-10-23T17:46:39.603 回答
-1
// list item click replace with this one

        private void registerClickCallback() {
                ListView list1 = (ListView) findViewById(R.id.listView1);
                list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View viewClicked, int postion, long id) {
                        //TextView textView = (TextView) viewClicked;
                       // String message = "This is the message: " + textView.getText().toString();
                       String message = list1 .getItemAtPosition(position).toString();

                        Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
                    }
                });`
于 2013-10-23T17:53:56.587 回答