builder.setView(edit); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { try { lat = Double.parseDouble(edit.getText().toString()); // 存储数据 SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("lat", Double.toString(lat)); editor.apply(); } catch (NumberFormatException e) { MyToast.makeText(XbyActivity.this, "输入数据有误", Toast.LENGTH_SHORT, true).show(); // 返回上个页面 Intent intent = new Intent(); setResult(RESULT_OK, intent); finish(); } } });可以用log打印的值有啥
时间: 2024-02-10 22:13:06 浏览: 16
可以用log打印出以下值:
1. `edit.getText().toString()`:获取EditText中输入的文本内容。
2. `lat`:将EditText中输入的文本内容转换为double类型后的值。
3. 存储在SharedPreferences中的`lat`值,即`Double.toString(lat)`。
例如:
```
Log.d("TAG", "EditText value: " + edit.getText().toString());
Log.d("TAG", "lat: " + lat);
Log.d("TAG", "Stored lat value: " + Double.toString(lat));
```
相关问题
以下代码,如何让弹窗必须选择后才能继续向下运行,要等待弹窗确认final int[] ide = {0}; unit_kind = "科室"; unit_xingzhi = ""; String[] keys = kezhang_names.keySet().toArray(new String[0]); View view = LayoutInflater.from(LuzhiAdmin_Xiangmu_Xiao0.this).inflate(R.layout.tanchuang, null); AlertDialog.Builder builder = new AlertDialog.Builder(LuzhiAdmin_Xiangmu_Xiao0.this); builder.setView(view); builder.setTitle("确定人员:"); builder.setSingleChoiceItems(keys, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ide[0] = which; return; } }).setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { id_perx = "#"+kezhang_names.get(keys[ide[0]])+"#"; } }); AlertDialog dialog = builder.create(); Window window = dialog.getWindow(); if (window != null) { WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); layoutParams.width = 600; layoutParams.height = 800; window.setAttributes(layoutParams); } dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialogInterface) { //等待确认执行 } }); dialog.show();
你可以在弹窗的"确定"按钮的点击事件中,将"ide[0]"的值更新为当前选中项的索引。然后在弹窗的"onDismiss"方法中,判断"ide[0]"的值是否发生了变化,如果没有变化,说明用户没有做出选择,可以弹出提示框提示用户进行选择,否则继续向下执行。代码如下所示:
```
final int[] ide = {-1}; // 初始化为-1,表示用户还没有做出选择
unit_kind = "科室";
unit_xingzhi = "";
String[] keys = kezhang_names.keySet().toArray(new String[0]);
View view = LayoutInflater.from(LuzhiAdmin_Xiangmu_Xiao0.this).inflate(R.layout.tanchuang, null);
AlertDialog.Builder builder = new AlertDialog.Builder(LuzhiAdmin_Xiangmu_Xiao0.this);
builder.setView(view);
builder.setTitle("确定人员:");
builder.setSingleChoiceItems(keys, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ide[0] = which;
return;
}
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (ide[0] == -1) {
// 如果用户没有做出选择,弹出提示框
Toast.makeText(LuzhiAdmin_Xiangmu_Xiao0.this, "请先选择人员", Toast.LENGTH_SHORT).show();
return;
}
id_perx = "#" + kezhang_names.get(keys[ide[0]]) + "#";
}
});
AlertDialog dialog = builder.create();
Window window = dialog.getWindow();
if (window != null) {
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.width = 600;
layoutParams.height = 800;
window.setAttributes(layoutParams);
}
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
if (ide[0] == -1) {
// 如果用户没有做出选择,弹出提示框
Toast.makeText(LuzhiAdmin_Xiangmu_Xiao0.this, "请先选择人员", Toast.LENGTH_SHORT).show();
return;
}
// 继续向下执行
}
});
dialog.show();
```
这样,弹窗就会等待用户做出选择后才能继续向下执行。如果用户没有做出选择,会弹出提示框提醒用户。
public class MainActivity extends AppCompatActivity { private EditText ipEditText; private EditText portEditText; private TextView messageTextView; private BufferedReader in; private PrintWriter out; private Socket socket; private Handler handler = new Handler(); @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ipEditText = findViewById(R.id.ipEditText); portEditText = findViewById(R.id.portEditText); messageTextView = findViewById(R.id.messageTextView); 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 Thread(new Runnable() { @Override public void run() { try { socket = new Socket(ip, port); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); // 在主页面中的窗口中实时显示消息 while (true) { String message = in.readLine(); if (message == null) { break; } handler.post(new Runnable() { @Override public void run() { messageTextView.append(message + "\n"); } }); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }).start(); } }); Button sendMessageButton = findViewById(R.id.sendMessageButton); sendMessageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showSendMessageDialog(); } }); } @Override protected void onDestroy() { super.onDestroy(); try { if (in != null) { in.close(); } if (out != null) { out.close(); } if (socket != null) { socket.close(); } } catch (IOException e) { e.printStackTrace(); } } private void showSendMessageDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.dialog_send_message, null); final EditText messageEditText = view.findViewById(R.id.messageEditText); builder.setView(view) .setTitle("发送消息") .setPositiveButton("发送", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String message = messageEditText.getText().toString(); if (out != null) { out.println(message); } } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }) .create() .show(); } }能帮我将这段代码中的发送信息从主线程改成子线程吗
您好,以下是将发送信息从主线程中改为子线程的代码:
```java
sendMessageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSendMessageDialog();
}
});
private void showSendMessageDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_send_message, null);
final EditText messageEditText = view.findViewById(R.id.messageEditText);
builder.setView(view)
.setTitle("发送消息")
.setPositiveButton("发送", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String message = messageEditText.getText().toString();
if (out != null) {
new Thread(new Runnable() {
@Override
public void run() {
out.println(message);
}
}).start();
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.create()
.show();
}
```
在这个改动中,我们将发送消息的操作放到了一个新的子线程中,防止阻塞主线程。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)