如何在发送时存储EditText数据

时间:2015-03-25 18:25:52

标签: android database chat messaging

我有一个Android聊天应用程序,可以将消息从客户端发送到服务器,但我正在寻找一种以某种方式存储发送消息的方法,而不是显示在列表中。

这是我申请的一部分;

public class AndroidChatApplicationActivity extends Activity {

private Handler handler = new Handler();
public ListView msgView;
public ArrayAdapter<String> msgList;

// public ArrayAdapter<String> msgList=new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1);;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    msgView = (ListView) findViewById(R.id.listView);

    msgList = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1);
    msgView.setAdapter(msgList);

    // msgView.smoothScrollToPosition(msgList.getCount() - 1);

    Button btnSend = (Button) findViewById(R.id.btn_Send);

    receiveMsg();
    btnSend.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            final EditText txtEdit = (EditText) findViewById(R.id.txt_inputText);
            // msgList.add(txtEdit.getText().toString());
            sendMessageToServer(txtEdit.getText().toString());
            msgView.smoothScrollToPosition(msgList.getCount() - 1);

        }
    });

    Button twitterButton = (Button) findViewById(R.id.website_Button);
    twitterButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sendToWebsite();
        }
    });
}

protected void sendToWebsite() {
    String url = "https://www.ljmu.ac.uk/";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);
}

// receiveMsg();
// ----------------------------
// server msg receieve
// -----------------------

// End Receive msg from server//

public void sendMessageToServer(String str) {

    final String str1 = str;
    new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            // String host = "opuntia.cs.utep.edu";
            String host = "10.0.2.2";
            String host2 = "127.0.0.1";
            PrintWriter out;
            try {
                Socket socket = new Socket(host, 8008);
                out = new PrintWriter(socket.getOutputStream());

                // out.println("hello");
                out.println(str1);
                Log.d("", "test");
                out.flush();
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.d("", "test2");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.d("", "test3");
            }

        }
    }).start();
}

public void receiveMsg() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub

            // final String host="opuntia.cs.utep.edu";
            final String host = "10.0.2.2";
            // final String host="localhost";
            Socket socket = null;
            BufferedReader in = null;
            try {
                socket = new Socket(host, 8008);
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            try {
                in = new BufferedReader(new InputStreamReader(
                        socket.getInputStream()));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            while (true) {
                String msg = null;
                try {
                    msg = in.readLine();
                    Log.d("", "MSGGG:  " + msg);

                    // msgList.add(msg);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if (msg == null) {
                    break;
                } else {
                    displayMsg(msg);
                }
            }

        }
    }).start();

}

public void displayMsg(String msg) {
    final String mssg = msg;
    handler.post(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            msgList.add(mssg);
            msgView.setAdapter(msgList);
            msgView.smoothScrollToPosition(msgList.getCount() - 1);
            Log.d("", "Hi Test");
        }
    });

 }

}

有人可以建议一种存储消息的方法,而不是在列表中显示它们吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试将它们存储在SharedPreferences中。通过我收集的内容,您希望存储输入,以便稍后可以在不同的活动中查看。请查看SharedPreferences此处http://developer.android.com/reference/android/content/SharedPreferences.html