protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ipEditText = findViewById(R.id.ipEditText); portEditText = findViewById(R.id.portEditText); Button connectButton = findViewById(R.id.connectButton); connectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String ip = ipEditText.getText().toString(); int port = Integer.parseInt(portEditText.getText().toString()); new ConnectTask().execute(ip, String.valueOf(port)); } });我想加入一个滑块,能在不同位置向端口发送对应的字符型数字
时间: 2024-03-09 07:47:24 浏览: 99
好的,可以在 activity_main.xml 文件中添加一个 SeekBar 控件,并为其设置一个 ID,例如:
```
<SeekBar
android:id="@+id/seekBar_x"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
然后在 MainActivity 的 onCreate 方法中,找到该 SeekBar 控件并为其设置一个 OnSeekBarChangeListener,例如:
```
SeekBar seekBar_x = findViewById(R.id.seekBar_x);
seekBar_x.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 根据不同的位置发送不同的字符型数字
switch (seekBar.getId()) {
case R.id.seekBar_x:
new SendDataTask().execute('x' + String.valueOf(progress));
break;
// 这里可以添加更多的位置
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
```
在 SendDataTask 类中的 doInBackground 方法中将字符型数字发送到已连接的端口。
值得注意的是,如果您在 doInBackground 方法中发送网络请求,应该避免在主线程中执行该任务。可以使用 AsyncTask 或者 Handler 等方式在后台线程中执行该任务。
阅读全文