Android 通过对话框将项添加到listview

Android 通过对话框将项添加到listview,android,Android,我正在使用一个自定义的listview,我想将它添加到我的listview中。但它似乎跳过了添加项目的所有代码。有人能告诉我如何调整我的代码来实现这一点吗 先谢谢你 这是我调用自定义对话框的主要活动 public class MainActivity extends ActionBarActivity { TextView threadId; ArrayList<MessageItem> items = new ArrayList<MessageItem>

我正在使用一个自定义的listview,我想将它添加到我的listview中。但它似乎跳过了添加项目的所有代码。有人能告诉我如何调整我的代码来实现这一点吗

先谢谢你

这是我调用自定义对话框的主要活动

public class MainActivity extends ActionBarActivity {
    TextView threadId;
    ArrayList<MessageItem> items = new ArrayList<MessageItem>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button newMessage = (Button) findViewById(R.id.new_message_button);
        final Context context = this;

        final ListView listView = (ListView) this.findViewById(R.id.messagingListView);
        final ActivityAdapter itemAdapter = new ActivityAdapter(getApplicationContext(), this.MessageFeedData());

        listView.setAdapter(itemAdapter);

        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                listView.getAdapter().getItem(position);

                MessageItem itemAtPos = (MessageItem) parent.getItemAtPosition(position);
                Intent intent = new Intent(MainActivity.this, ConversationView.class);
                intent.putExtra("threadId", String.valueOf(itemAtPos.ThreadId));
                startActivity(intent);
            }
        });

        newMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // custom dialog
                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.write_message_layout);
                dialog.setTitle("Title...");

                // set the custom dialog components - text, image and button
                final Button post_button = (Button) dialog.findViewById(R.id.button_post);
                final EditText new_write_message = (EditText) dialog.findViewById(R.id.messge_msg);
                final EditText to_message = (EditText) dialog.findViewById(R.id.to_newmsg);

                post_button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        items.add(new MessageItem(5458, to_message.getText().toString(), "imh", DateTime.now(), new_write_message.getText().toString()));

                        itemAdapter.notifyDataSetChanged();

                        if (v.getId() == R.id.button_post);
                        to_message.setText("");
                        new_write_message.setText("");


                    }
                });

                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_LONG)
                                .show();
                    }
                });

                dialog.show();
            }
        });

    }


    public ArrayList<MessageItem> MessageFeedData() {
        ArrayList<MessageItem> items = new ArrayList<MessageItem>();

        //recieved_item_click_actions fields
        items.add(new MessageItem(1, "Bob Doe", "image", DateTime.now(), "Hello how are you?"));
        items.add(new MessageItem(200, "Simon Pink", "image", DateTime.now(), "Hello what are you doing"));

        return items;
    }


    class ActivityFeedTask extends AsyncTask<Integer, Void, Void> {

        ArrayList<MessageItem> recentTracks;

        @Override
        protected Void doInBackground(Integer... page) {
            try {
                recentTracks = new ArrayList<MessageItem>();

                Thread.sleep(3000);

                MessageItem data = null;
                for (int i = 0; i < 10; i++) {

                    recentTracks.add(data);
                }
            } catch (Exception e) {
            }

            return null;
        }

    }

    public class ActivityAdapter extends ArrayAdapter<MessageItem> {
        private final Context context;
        private final ArrayList<MessageItem> items;
        //private int currentPage = 0;

        public ActivityAdapter(Context context, ArrayList<MessageItem> recentTrackArrayList) {
            super(context, 0, recentTrackArrayList);
            this.context = context;
            this.items = recentTrackArrayList;
        }


        public View getView(int position, View convertView, ViewGroup parent) {
            View rowView;


            {
                LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


                convertView = getLayoutInflater().inflate
                        (R.layout.message_list_item, parent, false);

                rowView = convertView;

                TextView comment2 = (TextView) rowView
                        .findViewById(R.id.messaging_username);
                comment2.setText(items.get(position).Username);

                ImageView comment3 = (ImageView) rowView
                        .findViewById(R.id.messaging_photo);
                if (items.get(position).Image == null) {
                    comment3.setImageResource(R.drawable.ic_launcher);
                }

                TextView comment4 = (TextView) rowView
                        .findViewById(R.id.messaging_date);
                comment4.setText(items.get(position).DateTimeStamp.toString());

                TextView comment5 = (TextView) rowView
                        .findViewById(R.id.messaging_string);
                comment5.setText(items.get(position).MessageString);

            }
            return convertView;
        }

    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">


    <EditText
        android:id="@+id/to_newmsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TO" />

    <EditText
        android:id="@+id/messge_msg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/to_newmsg"
        android:text="MESSAGE" />


    <Button
        android:id="@+id/button_post"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/messge_msg"
        android:text="Send" />

</RelativeLayout>
公共类MainActivity扩展了ActionBarActivity{
TextView线程ID;
ArrayList items=新建ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮newMessage=(按钮)findViewById(R.id.new\u message\u按钮);
最终上下文=此;
最终ListView ListView=(ListView)this.findViewById(R.id.messagingListView);
final ActivityAdapter itemAdapter=新的ActivityAdapter(getApplicationContext(),this.MessageFeedData());
setAdapter(itemAdapter);
setTextFilterEnabled(true);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
listView.getAdapter().getItem(位置);
MessageItem itemAtPos=(MessageItem)parent.getItemAtPosition(position);
意向意向=新意向(MainActivity.this、ConversationView.class);
intent.putExtra(“threadId”,String.valueOf(itemAtPos.threadId));
星触觉(意向);
}
});
newMessage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//自定义对话框
最终对话框=新对话框(上下文);
setContentView(R.layout.write_message_layout);
对话框。设置标题(“标题…”);
//设置自定义对话框组件-文本、图像和按钮
final Button post\u Button=(按钮)dialog.findviewbyd(R.id.Button\u post);
final EditText new_write_message=(EditText)dialog.findviewbyd(R.id.messge_msg);
final EditText to_message=(EditText)dialog.findViewById(R.id.to_newmsg);
post_按钮.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
添加(新的MessageItem(5458,to_message.getText().toString(),“imh”,DateTime.now(),new_write_message.getText().toString());
itemAdapter.notifyDataSetChanged();
如果(v.getId()==R.id.button\u post);
to_message.setText(“”);
新建写入消息。setText(“”);
}
});
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(MainActivity.this,“单击”,Toast.LENGTH\u LONG)
.show();
}
});
dialog.show();
}
});
}
公共ArrayList MessageFeedData(){
ArrayList items=新建ArrayList();
//已接收\u项目\u单击\u操作字段
添加(新消息项(1,“Bob Doe”,“image”,DateTime.now(),“你好吗?”);
添加(新的MessageItem(200,“Simon Pink”,“image”,DateTime.now(),“Hello你在做什么”);
退货项目;
}
类ActivityFeedTask扩展了AsyncTask{
ArrayList最近追踪;
@凌驾
受保护的Void doInBackground(整数…页){
试一试{
recentTracks=新的ArrayList();
睡眠(3000);
MessageItem数据=null;
对于(int i=0;i<10;i++){
添加(数据);
}
}捕获(例外e){
}
返回null;
}
}
公共类ActivityAdapter扩展了ArrayAdapter{
私人最终语境;
私人最终ArrayList项目;
//private int currentPage=0;
公共活动适配器(上下文上下文,ArrayList recentTrackArrayList){
super(context,0,recentTrackArrayList);
this.context=上下文;
this.items=recentTrackArrayList;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行视图;
{
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
convertView=GetLayoutFlater()。充气
(R.layout.message\u list\u项,父项,false);
rowView=convertView;
TextView comment2=(TextView)行视图
.findViewById(R.id.messaging_用户名);
comment2.setText(items.get(position.Username));
ImageView注释3=(ImageView)行视图
.findviewbyd(R.id.照片);
if(items.get(position.Image==null){
注释3.setImageResource(R.drawable.ic_启动器);
}
TextView comment4=(TextView)行视图
.findViewById(R.id.U日期);
comment4.setText(items.get(position.DateTimeStamp.toString());
TextView comment5=(TextView)行视图
.findViewById(R.id.messaging_字符串);
comment5.setText(items.get(position.MessageString));
}
返回视图;
}
}
}
这是我的自定义对话框

public class MainActivity extends ActionBarActivity {
    TextView threadId;
    ArrayList<MessageItem> items = new ArrayList<MessageItem>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button newMessage = (Button) findViewById(R.id.new_message_button);
        final Context context = this;

        final ListView listView = (ListView) this.findViewById(R.id.messagingListView);
        final ActivityAdapter itemAdapter = new ActivityAdapter(getApplicationContext(), this.MessageFeedData());

        listView.setAdapter(itemAdapter);

        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                listView.getAdapter().getItem(position);

                MessageItem itemAtPos = (MessageItem) parent.getItemAtPosition(position);
                Intent intent = new Intent(MainActivity.this, ConversationView.class);
                intent.putExtra("threadId", String.valueOf(itemAtPos.ThreadId));
                startActivity(intent);
            }
        });

        newMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // custom dialog
                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.write_message_layout);
                dialog.setTitle("Title...");

                // set the custom dialog components - text, image and button
                final Button post_button = (Button) dialog.findViewById(R.id.button_post);
                final EditText new_write_message = (EditText) dialog.findViewById(R.id.messge_msg);
                final EditText to_message = (EditText) dialog.findViewById(R.id.to_newmsg);

                post_button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        items.add(new MessageItem(5458, to_message.getText().toString(), "imh", DateTime.now(), new_write_message.getText().toString()));

                        itemAdapter.notifyDataSetChanged();

                        if (v.getId() == R.id.button_post);
                        to_message.setText("");
                        new_write_message.setText("");


                    }
                });

                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_LONG)
                                .show();
                    }
                });

                dialog.show();
            }
        });

    }


    public ArrayList<MessageItem> MessageFeedData() {
        ArrayList<MessageItem> items = new ArrayList<MessageItem>();

        //recieved_item_click_actions fields
        items.add(new MessageItem(1, "Bob Doe", "image", DateTime.now(), "Hello how are you?"));
        items.add(new MessageItem(200, "Simon Pink", "image", DateTime.now(), "Hello what are you doing"));

        return items;
    }


    class ActivityFeedTask extends AsyncTask<Integer, Void, Void> {

        ArrayList<MessageItem> recentTracks;

        @Override
        protected Void doInBackground(Integer... page) {
            try {
                recentTracks = new ArrayList<MessageItem>();

                Thread.sleep(3000);

                MessageItem data = null;
                for (int i = 0; i < 10; i++) {

                    recentTracks.add(data);
                }
            } catch (Exception e) {
            }

            return null;
        }

    }

    public class ActivityAdapter extends ArrayAdapter<MessageItem> {
        private final Context context;
        private final ArrayList<MessageItem> items;
        //private int currentPage = 0;

        public ActivityAdapter(Context context, ArrayList<MessageItem> recentTrackArrayList) {
            super(context, 0, recentTrackArrayList);
            this.context = context;
            this.items = recentTrackArrayList;
        }


        public View getView(int position, View convertView, ViewGroup parent) {
            View rowView;


            {
                LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


                convertView = getLayoutInflater().inflate
                        (R.layout.message_list_item, parent, false);

                rowView = convertView;

                TextView comment2 = (TextView) rowView
                        .findViewById(R.id.messaging_username);
                comment2.setText(items.get(position).Username);

                ImageView comment3 = (ImageView) rowView
                        .findViewById(R.id.messaging_photo);
                if (items.get(position).Image == null) {
                    comment3.setImageResource(R.drawable.ic_launcher);
                }

                TextView comment4 = (TextView) rowView
                        .findViewById(R.id.messaging_date);
                comment4.setText(items.get(position).DateTimeStamp.toString());

                TextView comment5 = (TextView) rowView
                        .findViewById(R.id.messaging_string);
                comment5.setText(items.get(position).MessageString);

            }
            return convertView;
        }

    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">


    <EditText
        android:id="@+id/to_newmsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TO" />

    <EditText
        android:id="@+id/messge_msg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/to_newmsg"
        android:text="MESSAGE" />


    <Button
        android:id="@+id/button_post"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/messge_msg"
        android:text="Send" />

</RelativeLayout>

Yo
 final ActivityAdapter itemAdapter = new ActivityAdapter(getApplicationContext(), this.MessageFeedData());
final ListView listView = (ListView) this.findViewById(R.id.messagingListView);
items = this.MessageFeedData());
final ActivityAdapter itemAdapter = new ActivityAdapter(getApplicationContext(), items);