2013-09-01 121 views
0

如何将一个edittext的结果传递给另一个edittext?这是一个EditText上的我的示例代码:如何将一个edittext的结果传递给另一个edittext?

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()); 

而且我要的tv.setText(vis.toString());值将被转移到我将使用是对我的AsyncTask(服务器 - 客户端通信)的输入另外一个EditText上。

任何人都可以帮助我吗?

的AsyncTask:

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

    private EditText kaboom; 

    /** 
    * 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(); 

     kaboom = (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 = kaboom.getText().toString(); // get the text message on the text field 
      kaboom.setText(null); // 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(); 
     } 
    } 
} 
+0

尝试: secondEditTextBox.setText(vis.toString()); –

+0

它的工作原理,但当我试图发送到我的Java服务器,它只收到一个空白。 – Kerv

回答

0

创建一个字符串变量,并指定你需要转移到另一个的EditText并通过字符串作为参数传递给函数的值。

+0

你能告诉我一个例子吗?考虑我的代码作为第一个编辑文本。 :) @Mothy – Kerv

+0

string myString = vis.ToString();并将具有vis.ToString()值的myString变量传递给需要具有vis.ToString()值的函数。 – Mothy

+0

我没有得到你说的。 :( – Kerv

0

如果您的EditText需要AsyncTask doInBackground方法中的长计算结果,那么您应该在asyncTask的onPostExcute方法中提升此editexts值。希望能帮助到你。

+0

你能详细解释一下吗?我们也持相同观点。你能谈谈这个吗? – Kerv

+0

你不需要存储那样的视图。只需将您的asyncTask声明为您的活动的子类并更新onPostExecute中的UI即可。后台任务不应该与UI线程交互。 – kylexy1357

相关问题