【发布时间】:2015-06-05 16:18:35
【问题描述】:
我在 android studio 上创建了一个套接字程序。现在,当客户端在服务器上收到一条消息时(消息可能会有所不同)。客户端将拆分消息并将其显示在下一个活动中。我尝试在 EditText 上显示它并且它有效。现在我想在 Spinner 上实现它。我该怎么做?这是我的代码以获取更多信息。
主活动
android.view.View.OnClickListener ScanOnClickListener = new View.OnClickListener() {
public void onClick(View v) {
SocketHandler.getSocket().SendScan();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
SocketHandler.setSocket(thread);
Intent i = new Intent(MainActivity.this,Page2.class);
startActivity(i);
}
}, 3000);
Intent i = new Intent(MainActivity.this,Page2.class);
startActivity(i);
}
};
下一个活动
public class Page2 extends Activity {
private EditText a,b,c,d,e,f;
SocketClient thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
a = (EditText) findViewById(R.id.editText);
b = (EditText) findViewById(R.id.editText1);
c = (EditText) findViewById(R.id.editText2);
d = (EditText) findViewById(R.id.editText3);
e = (EditText) findViewById(R.id.editText4);
f = (EditText) findViewById(R.id.editText5);
Thread socketdataThread = new Thread(new SocketdataThread());
socketdataThread.start();
}
private class SocketdataThread extends Thread {
@Override
public void run() {
String[] response = SocketHandler.getSocket().Socketdata.split("||");
a.setText(response[0]);
b.setText(response[1]);
c.setText(response[2]);
d.setText(response[3]);
e.setText(response[4]);
f.setText(response[5]);
}
}
}
如您所见,我使用 String[] response = SocketHandler.getSocket().Socketdata.split("||");拆分服务器的消息。消息是变化的,例如 (data1||data2) 或 (data1||data2||data3) 等等。
更新:下一个活动
public class Page2 extends ActionBarActivity {
private String array_spinner[];
SocketClient thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transaction);
Spinner s = (Spinner) findViewById(R.id.spinner);
Thread socketServerThread = new Thread(new SocketServerThread());
socketServerThread.start();
}
private class SocketServerThread extends Thread {
@Override
public void run() {
String[] response = SocketHandler.getSocket().Socketdata.split("||");
List<String> data = new List<String>();
for(String resp:response)
{
data.add(resp);
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, lables);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(dataAdapter);
}
}
}
【问题讨论】:
标签: android sockets client spinner