在输入框etFont输入字号,点击按钮btnReturn实现字号的改变
时间: 2024-09-30 12:05:26 浏览: 18
为了实现这个功能,你可以按照以下步骤操作:
1. **布局设计**:
- 在`FontActivity`的XML布局文件(如activity_font.xml)中,添加一个EditText (`etFont`) 用于显示或输入字号,以及一个Button (`btnReturn`) 供用户确认选择。
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!--...其他布局元素...-->
>
<EditText
android:id="@+id/etFont"
android:hint="请输入字号"
android:inputType="numberDecimal" />
<Button
android:id="@+id/btnReturn"
android:text="确定"
android:onClick="onButtonClick" />
</LinearLayout>
```
2. **Java代码**:
- 在`FontActivity`类中,设置按钮的监听器,当用户点击按钮时,从EditText获取输入的字号,并调用`startService`或`startActivityForResult`将结果发送回`MainActivity`。
```java
public class FontActivity extends AppCompatActivity {
// ...
public void onButtonClick(View view) {
String inputSize = etFont.getText().toString();
int fontSize = Integer.parseInt(inputSize); // 将字符串转换为整数
Intent intent = startFromFontActivity(MainActivity.this, fontSize);
setResult(RESULT_OK, intent);
finish(); // 结束当前Activity
}
}
```
3. **MainActivity** 的修改:
- 在`MainActivity`中处理返回的请求,当接收到字体大小后,更新`tvTitle`的字体大小。
```java
public class MainActivity extends AppCompatActivity {
// ...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SELECT_FONT_REQUEST && resultCode == RESULT_OK) {
int fontSize = data.getIntExtra("fontSize", 0);
updateTitleFontSize(fontSize);
}
}
private void updateTitleFontSize(int fontSize) {
tvTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize);
}
}
```
4. **相关问题--:**
1. 如何处理EditText文本为空的情况?
2. 如果用户输入的不是数字,该如何处理异常?
3. 是否还需要在`MainActivity`中显示一个加载提示,直到`FontActivity`返回结果?