错误在Java服务器发送的EditText。见code [英] Error sending edittext in java server. See code

查看:157
本文介绍了错误在Java服务器发送的EditText。见code的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的工作code。但是,当我尝试点击,我的客户端连接到端口的按钮t,我的应用程序崩溃。见我的code。

 公共类订单扩展活动{
    按钮GoBackHome;
    私人按钮按钮1,按钮3;
    私人的EditText txtbox1,txtbox2,txtbox3,txtbox4,textfield的情况;
    私人TextView的电视;
    按钮PayNow;
    复选框chxbx1,chxbx2,chxbx3,chxbx4;

    @覆盖
    公共无效onBack pressed(){
    }

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
            的setContentView(R.layout.order);

            GoBackHome =(按钮)findViewById(R.id.gohomebutton);
            PayNow =(按钮)findViewById(R.id.button2);
            txtbox1 =(EditText上)findViewById(R.id.editText1);
            按钮1 =(按钮)findViewById(R.id.button1);
            电视=(TextView中)findViewById(R.id.editText5);
            txtbox2 =(EditText上)findViewById(R.id.editText2);
            txtbox3 =(EditText上)findViewById(R.id.editText3);
            txtbox4 =(EditText上)findViewById(R.id.editText4);
            chxbx1 =(复选框)findViewById(R.id.checkbox1);
            chxbx2 =(复选框)findViewById(R.id.checkbox2);
            chxbx3 =(复选框)findViewById(R.id.checkbox3);
            chxbx4 =(复选框)findViewById(R.id.checkbox4);
            按钮3 =(按钮)findViewById(R.id.button3);
            textField的=(的EditText)findViewById(R.id.editText6);
            button1.setOnClickListener(新答题());
            按钮get_view_button =(按钮)findViewById(R.id.viewsummary);
            get_view_button.setOnClickListener(get_view_button_listener);

            GoBackHome.setOnClickListener(新OnClickListener(){
                @覆盖
                公共无效的onClick(视图v){
                    最终意图I =新的意图(Order.this,MainActivity.class);
                    startActivity(ⅰ);
                }
            });

            PayNow.setOnClickListener(新OnClickListener(){
                @覆盖
                公共无效的onClick(视图v){
                    最终意图I =新的意图(Order.this,Payment.class);
                    startActivity(ⅰ);
                }
            });

            chxbx1.setOnCheckedChangeListener(新OnCheckedChangeListener(){
                @覆盖
                公共无效onCheckedChanged(CompoundButton buttonView,
                    布尔器isChecked){
                    如果(chxbx1.isChecked()){
                        txtbox1.setEnabled(真正的);
                        txtbox1.setFocusable(真正的);
                    } 其他 {
                        txtbox1.setEnabled(假);
                        txtbox1.setFocusable(假);
                    }
                }
            });

            chxbx2.setOnCheckedChangeListener(新OnCheckedChangeListener(){
                @覆盖
                公共无效onCheckedChanged(CompoundButton buttonView,
                    布尔器isChecked){
                    如果(chxbx2.isChecked()){
                        txtbox2.setEnabled(真正的);
                        txtbox2.setFocusable(真正的);
                    } 其他 {
                        txtbox2.setEnabled(假);
                        txtbox2.setFocusable(假);
                    }
                }
            });

            chxbx3.setOnCheckedChangeListener(新OnCheckedChangeListener(){
                @覆盖
                公共无效onCheckedChanged(CompoundButton buttonView,
                    布尔器isChecked){
                    如果(chxbx3.isChecked()){
                        txtbox3.setEnabled(真正的);
                        txtbox3.setFocusable(真正的);
                    } 其他 {
                        txtbox3.setEnabled(假);
                        txtbox3.setFocusable(假);
                    }
                }
            });

            chxbx4.setOnCheckedChangeListener(新OnCheckedChangeListener(){
                @覆盖
                公共无效onCheckedChanged(CompoundButton buttonView,
                    布尔器isChecked){
                    如果(chxbx4.isChecked()){
                        txtbox4.setEnabled(真正的);
                        txtbox4.setFocusable(真正的);
                    } 其他 {
                        txtbox4.setEnabled(假);
                        txtbox4.setFocusable(假);
                    }
                }
            });



    }

    私人Button.OnClickListener get_view_button_listener =新Button.OnClickListener(){
        公共无效的onClick(视图v){
          字符串R =;
          如果(chxbx1.isChecked()){
            R = R +\ N+ chxbx1.getText()+..............+ txtbox1.getText()的toString()。
            txtbox1.setEnabled(真正的);
            txtbox1.setFocusable(真正的);
          }
          如果(chxbx2.isChecked()){
            R = R +\ N+ chxbx2.getText()+..............+ txtbox2.getText()的toString()。
            txtbox2.setEnabled(真正的);
            txtbox2.setFocusable(真正的);
          }
          如果(chxbx3.isChecked()){
            R = R +\ N+ chxbx3.getText()+..............+ txtbox3.getText()的toString()。
            txtbox3.setEnabled(真正的);
            txtbox3.setFocusable(真正的);
          }
          如果(chxbx4.isChecked()){
            R = R +\ N+ chxbx4.getText()+..............+ txtbox4.getText()的toString()。
            txtbox4.setEnabled(真正的);
            txtbox4.setFocusable(真正的);
          }
          textField.setText(r)的;

          button3.setOnClickListener(新View.OnClickListener()
          {

              公共无效的onClick(视图v)
              {
                  新ConnectToServerTask()执行(textfield的情况);
              }
          });

        }


      };



    类唱首歌实现Button.OnClickListener
    {
        公共无效的onClick(视图v)
        {
            字符串A,B,C,D;
            整数可见;
            。一个= txtbox1.getText()的toString();
            B = txtbox2.getText()的toString();
            C = txtbox3.getText()的toString();
            D = txtbox4.getText()的toString();
            可见=的Integer.parseInt(一)* 2 +的Integer.parseInt(二)* 3 +的Integer.parseInt(三)* 4 +的Integer.parseInt(四)* 5;
            tv.setText(vis.toString());


        }

    }



}
 

我不知道的低于code中的定位是在它的右边部分。

  button3.setOnClickListener(新View.OnClickListener()
          {

              公共无效的onClick(视图v)
              {
                  新ConnectToServerTask()。执行

(文本域);
              }
          });
 

下面是在服务器端我的code:

公共类TestTCP {     私有静态最终诠释端口= 1485;

 私有静态的ServerSocket ServerSocket的;
私有静态插座ClientSocket的;
私有静态InputStreamReader的InputStreamReader的;
私有静态BufferedReader类BufferedReader中;
私有静态字符串消息;
私有静态字符串多;

公共静态无效的主要(字串[] args)
{
    尝试
    {
        的ServerSocket =新的ServerSocket(PORT,0,InetAddress.getLocalHost());

        的System.out.println(IP:+ serverSocket.getInetAddress()+端口:+ serverSocket.getLocalPort());

    }赶上(IOException异常E)
    {
        的System.out.println(无法监听端口:1447);
    }

    的System.out.println(服务器开始听端口1447。);

    而(真)
    {
        尝试
        {{
            ClientSocket的=的ServerSocket.accept(); //接受客户端的连接
            InputStreamReader的=新的InputStreamReader(clientSocket.getInputStream());
            的BufferedReader =新的BufferedReader(InputStreamReader的); //获取客户端消息
            消息= bufferedReader.readLine();

            而((消息= bufferedReader.readLine())!= NULL){
                的System.out.println(从表1中留言:+消息);}
                inputStreamReader.close();
                clientSocket.close();}

        }赶上(IOException异常前)
        {
            ex.printStackTrace();
            的System.out.println(在邮件问题读书);
        }
        最后 {
            尝试 {
                如果(!BufferedReader类= NULL)bufferedReader.close();
            }赶上(IOException异常前){
                ex.printStackTrace();
            }
    }
}}}
 

这是为AsyncTask的(如果你想看到它):

 公共类ConnectToServerTask扩展的AsyncTask<查看,整型,插座>
{
    私有静态最后弦乐IP_ADDRESS =192.168.1.102; // Kerv服务器
    私有静态最终诠释DEST_PORT = 1485; //用于端口

    私人的EditText mTextField中;

    / **
     *提供的存储视图(后来在onPostExecute(用...))。
     *
     *创建插座服务器(阻塞调用)进行通信。
     * /
    保护插座doInBackground(查看... PARAMS)
    {
        //提供存储的看法。
        如果(params.length!= 1)
            抛出新抛出:IllegalArgumentException();

        mTextField中=(EditText上)PARAMS [0];


        //创建插座。
        客户端的Socket = NULL;

        尝试
        {
            客户端=新的Socket(IP地址,DEST_PORT); //连接到服务器
        }赶上(UnknownHostException异常E)
        {
            e.printStackTrace();
        }赶上(IOException异常E)
        {
            e.printStackTrace();
        }

        返回客户端;
    }

    / **
     *写入服务器。
     * /
    保护无效onPostExecute(客户端的Socket)
    {
        尝试
        {
            PrintWriter的PrintWriter的;
            字符串消息话题;

            。消息话题= mTextField.getText()的toString(); //获取上的文本字段中的文本消息
            mTextField.setText(\ N); //重新设置文本字段为空

            PrintWriter的=的新PrintWriter(client.getOutputStream(),TRUE);
            printwriter.write(消息话题); //写邮件到输出流

            printwriter.flush();
            printwriter.close();

            client.close();
        }
        赶上(IOException异常E)
        {
            e.printStackTrace();
        }
    }
}
 

logcat的:

 七月八日至29日:36:54.398:E / AndroidRuntime(31968):致命异常:主要
7月8号至29号:36:54.398:E / AndroidRuntime(31968):显示java.lang.NullPointerException
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在com.example.controlsystemfinale.ConnectToServerTask.onPostExecute(ConnectToServerTask.java:72)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在com.example.controlsystemfinale.ConnectToServerTask.onPostExecute(ConnectToServerTask.java:1)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.os.AsyncTask.finish(AsyncTask.java:602)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.os.AsyncTask.access $ 600(AsyncTask.java:156)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:615)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.os.Handler.dispatchMessage(Handler.java:99)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.os.Looper.loop(Looper.java:154)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在android.app.ActivityThread.main(ActivityThread.java:4945)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在java.lang.reflect.Method.invokeNative(本机方法)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在java.lang.reflect.Method.invoke(Method.java:511)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
7月8号至29号:36:54.398:E / AndroidRuntime(31968):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

它看起来像问题是, mTextField中 ConnectToServerTask 。您可能需要在类中创建一个构造函数接受的EditText 您正试图通过它在你的的onClick(),但它看起来错误或使其内部类。如果你要通过它那么它应该像

 新ConnectToServerTask(textfield的情况).execute;
 

再有一个构造带的的EditText 喜欢

 公共ConnectToServerTask(EditText上textfield的情况)
{
    mTextField中= textfield的情况;
}
 

这将会给你带来更多的问题。但是,如果你让你的的AsyncTask 一个内部类的活动的 textField的是一个成员变量,然后你的的AsyncTask 将已经访问它不通过任何东西。

修改

 公共类订单扩展活动{
    按钮GoBackHome;
    私人按钮按钮1,按钮3;
    私人的EditText txtbox1,txtbox2,txtbox3,txtbox4,textfield的情况;
    私人TextView的电视;
    按钮PayNow;
    复选框chxbx1,chxbx2,chxbx3,chxbx4;


    //其它功能如的onCreate()
    私有类ConnectToServerTask扩展的AsyncTask<查看,整型,插座>这里//内部类的活动里
{
    私有静态最后弦乐IP_ADDRESS =192.168.1.102; // Kerv服务器
    私有静态最终诠释DEST_PORT = 1485; //用于端口

    私人的EditText mTextField中;

    / **
    *提供的存储视图(后来在onPostExecute(用...))。
    *
    *创建插座服务器(阻塞调用)进行通信。
    * /
    保护插座doInBackground(查看... PARAMS)
    {
 

Here is a working code of mine. But when I try to click the buttont that connects my client to port, my app crashes. See my code.

public class Order extends Activity {
    Button GoBackHome;
    private Button button1, button3;  
    private EditText txtbox1,txtbox2,txtbox3,txtbox4,textField;  
    private TextView tv;
    Button PayNow;
    CheckBox chxbx1, chxbx2, chxbx3,chxbx4;

    @Override
    public void onBackPressed() {
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.order);

            GoBackHome = (Button) findViewById(R.id.gohomebutton);
            PayNow = (Button) findViewById(R.id.button2);
            txtbox1= (EditText) findViewById(R.id.editText1);  
            button1 = (Button) findViewById(R.id.button1);  
            tv = (TextView) findViewById(R.id.editText5);  
            txtbox2= (EditText) findViewById(R.id.editText2);
            txtbox3= (EditText) findViewById(R.id.editText3);
            txtbox4= (EditText) findViewById(R.id.editText4);
            chxbx1 = (CheckBox)findViewById(R.id.checkbox1);
            chxbx2 = (CheckBox)findViewById(R.id.checkbox2);
            chxbx3 = (CheckBox)findViewById(R.id.checkbox3);
            chxbx4 = (CheckBox)findViewById(R.id.checkbox4);
            button3 = (Button) findViewById(R.id.button3);
            textField = (EditText) findViewById(R.id.editText6);
            button1.setOnClickListener(new clicker());
            Button get_view_button = (Button) findViewById(R.id.viewsummary);
            get_view_button.setOnClickListener(get_view_button_listener);

            GoBackHome.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    final Intent i = new Intent(Order.this, MainActivity.class);               
                    startActivity(i);
                }
            });

            PayNow.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    final Intent i = new Intent(Order.this, Payment.class);               
                    startActivity(i);
                }
            });

            chxbx1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                    if (chxbx1.isChecked()) {
                        txtbox1.setEnabled(true);
                        txtbox1.setFocusable(true);
                    } else {
                        txtbox1.setEnabled(false);
                        txtbox1.setFocusable(false);
                    }
                }
            });

            chxbx2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                    if (chxbx2.isChecked()) {
                        txtbox2.setEnabled(true);
                        txtbox2.setFocusable(true);
                    } else {
                        txtbox2.setEnabled(false);
                        txtbox2.setFocusable(false);
                    }
                }
            });

            chxbx3.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                    if (chxbx3.isChecked()) {
                        txtbox3.setEnabled(true);
                        txtbox3.setFocusable(true);
                    } else {
                        txtbox3.setEnabled(false);
                        txtbox3.setFocusable(false);
                    }
                }
            });

            chxbx4.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                    if (chxbx4.isChecked()) {
                        txtbox4.setEnabled(true);
                        txtbox4.setFocusable(true);
                    } else {
                        txtbox4.setEnabled(false);
                        txtbox4.setFocusable(false);
                    }
                }
            });



    }

    private Button.OnClickListener get_view_button_listener = new Button.OnClickListener() {
        public void onClick(View v) {
          String r = "";
          if (chxbx1.isChecked()) {
            r = r + "\n" + chxbx1.getText() + ".............." + txtbox1.getText().toString();
            txtbox1.setEnabled(true);
            txtbox1.setFocusable(true);
          }
          if (chxbx2.isChecked()) {
            r = r + "\n" + chxbx2.getText() + ".............." + txtbox2.getText().toString();
            txtbox2.setEnabled(true);
            txtbox2.setFocusable(true);
          }
          if (chxbx3.isChecked()) {
            r = r + "\n" + chxbx3.getText() + ".............." + txtbox3.getText().toString();
            txtbox3.setEnabled(true);
            txtbox3.setFocusable(true);
          }
          if (chxbx4.isChecked()) {
            r = r + "\n" + chxbx4.getText() + ".............." + txtbox4.getText().toString();
            txtbox4.setEnabled(true);
            txtbox4.setFocusable(true);
          }
          textField.setText(r);

          button3.setOnClickListener(new View.OnClickListener()
          {

              public void onClick(View v)
              {
                  new ConnectToServerTask().execute(textField);
              }
          });

        }


      };



    class clicker implements Button.OnClickListener  
    {  
        public void onClick(View v)  
        {  
            String a,b,c,d;  
            Integer vis;  
            a = txtbox1.getText().toString();  
            b = txtbox2.getText().toString();
            c = txtbox3.getText().toString();
            d = txtbox4.getText().toString();
            vis = Integer.parseInt(a)*2+Integer.parseInt(b)*3+Integer.parseInt(c)*4+Integer.parseInt(d)*5;  
            tv.setText(vis.toString());  


        }  

    }  



}

I dont know if the positioning of the below code is on its right section.

button3.setOnClickListener(new View.OnClickListener()
          {

              public void onClick(View v)
              {
                  new ConnectToServerTask().execute

(textField);
              }
          });

Here is my code on the server side:

public class TestTCP { private static final int PORT = 1485;

private static ServerSocket serverSocket;
private static Socket clientSocket;
private static InputStreamReader inputStreamReader;
private static BufferedReader bufferedReader;
private static String message;
private static String multiple;

public static void main(String[] args)
{
    try
    {
        serverSocket = new ServerSocket(PORT, 0, InetAddress.getLocalHost());

        System.out.println("IP:  " + serverSocket.getInetAddress() + "  Port:  " +  serverSocket.getLocalPort());

    } catch (IOException e)
    {
        System.out.println("Could not listen on port: 1447");
    }

    System.out.println("Server started. Listening to the port 1447");

    while (true)
    {
        try
        {{
            clientSocket = serverSocket.accept(); // accept the client connection
            inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
            bufferedReader = new BufferedReader(inputStreamReader); // get the client message
            message = bufferedReader.readLine();

            while ((message = bufferedReader.readLine()) != null) {
                System.out.println("Message from Table 1: " + message);}
                inputStreamReader.close();
                clientSocket.close();}

        } catch (IOException ex)
        {
            ex.printStackTrace();
            System.out.println("Problem in message reading");
        }
        finally {
            try {
                if (bufferedReader != null)bufferedReader.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
    }
}}}

And this is for the Asynctask (If you want to see it):

public class ConnectToServerTask extends AsyncTask<View, Integer, Socket>
{
    private static final String IP_ADDRESS = "192.168.1.102";  // Kerv Server
    private static final int DEST_PORT = 1485; //port that is used

    private EditText mTextField;

    /**
     * Store provided views (used later in onPostExecute(...)).
     * 
     * Create socket to communicate with server (blocking call).
     */
    protected Socket doInBackground(View... params)
    {
        // Store provided views.
        if (params.length != 1)
            throw new IllegalArgumentException();

        mTextField = (EditText) params[0];


        // Create socket.
        Socket client = null;

        try
        {
            client = new Socket(IP_ADDRESS, DEST_PORT); // connect to server
        } catch (UnknownHostException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }

        return client;
    }

    /**
     * Write to server.
     */
    protected void onPostExecute(Socket client)
    {
        try
        {
            PrintWriter printwriter;
            String messsage;

            messsage = mTextField.getText().toString(); // get the text message on the text field
            mTextField.setText("\n"); // Reset the text field to blank

            printwriter = new PrintWriter(client.getOutputStream(), true);
            printwriter.write(messsage); // write the message to output stream

            printwriter.flush();
            printwriter.close();

            client.close();
        } 
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

LOGCAT:

08-29 07:36:54.398: E/AndroidRuntime(31968): FATAL EXCEPTION: main
08-29 07:36:54.398: E/AndroidRuntime(31968): java.lang.NullPointerException
08-29 07:36:54.398: E/AndroidRuntime(31968):    at com.example.controlsystemfinale.ConnectToServerTask.onPostExecute(ConnectToServerTask.java:72)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at com.example.controlsystemfinale.ConnectToServerTask.onPostExecute(ConnectToServerTask.java:1)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.os.AsyncTask.finish(AsyncTask.java:602)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.os.AsyncTask.access$600(AsyncTask.java:156)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.os.Looper.loop(Looper.java:154)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at android.app.ActivityThread.main(ActivityThread.java:4945)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at java.lang.reflect.Method.invokeNative(Native Method)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at java.lang.reflect.Method.invoke(Method.java:511)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-29 07:36:54.398: E/AndroidRuntime(31968):    at dalvik.system.NativeStart.main(Native Method)

解决方案

It looks like the problem is that mTextField is null in ConnectToServerTask. You either need to create a constructor in that class to accept an EditText which you are trying to pass it in your onClick() but it looks wrong or make it an inner class. If you are going to pass it then it should be like

new ConnectToServerTask(textField).execute;

then have a constructor to take an EditText like

public ConnectToServerTask(EditText textField)
{
    mTextField = textField;
}

which is going to cause you more problems. But if you make your AsyncTask an inner class of your Activity and textField is a member variable then your AsyncTask will already have access to it without passing anything.

Edit

public class Order extends Activity {
    Button GoBackHome;
    private Button button1, button3;  
    private EditText txtbox1,txtbox2,txtbox3,txtbox4,textField;  
    private TextView tv;
    Button PayNow;
    CheckBox chxbx1, chxbx2, chxbx3,chxbx4;


    // other functions such as onCreate()
    private class ConnectToServerTask extends AsyncTask<View, Integer, Socket> // inner class here inside your Activity
{
    private static final String IP_ADDRESS = "192.168.1.102";  // Kerv Server
    private static final int DEST_PORT = 1485; //port that is used

    private EditText mTextField;

    /**
    * Store provided views (used later in onPostExecute(...)).
    * 
    * Create socket to communicate with server (blocking call).
    */
    protected Socket doInBackground(View... params)
    {

这篇关于错误在Java服务器发送的EditText。见code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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