java - 如何在多点触控界面中循环浏览字母?
问题描述
我正在为老式手机创建一个 android 应用程序,您可以在其中多次单击数字并在每次单击时循环浏览字母。然后,您使用专用按钮提交该字母。
到目前为止,我可以循环遍历给定数字的字母(即数字 2 通过 abc 循环),但无法弄清楚如何将字母提交到 textview 并继续按下下一个按钮。
我写的代码比较乱,感觉可以简化不少。我已经有一段时间没有被这样困住了。
我将包括我到目前为止的代码。任何帮助表示赞赏!
公共类 MainActivity 扩展 AppCompatActivity {
Button one, two, three, four, five, six, seven, eight, nine, zero;
Button commit;
TextView input;
int clicks = 0;
String finalInput = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = findViewById(R.id.input);
commit = findViewById(R.id.commit);
one = findViewById(R.id.one);
two = findViewById(R.id.abc);
three = findViewById(R.id.def);
four = findViewById(R.id.ghi);
five = findViewById(R.id.jkl);
six = findViewById(R.id.mno);
seven = findViewById(R.id.pqrs);
eight = findViewById(R.id.tuv);
nine = findViewById(R.id.wxyz);
zero = findViewById(R.id.zero);
two.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clicks ++;
if(clicks == 1){
finalInput = input.getText().toString();
if(finalInput.length() != 0){
finalInput = finalInput.substring(0, finalInput.length() -1);
input.setText(finalInput);
}
input.setText(finalInput + "a");
}else if(clicks == 2){
finalInput = input.getText().toString();
finalInput = finalInput.substring(0, finalInput.length() -1);
input.setText(finalInput);
System.out.println(finalInput);
input.setText(finalInput + "b");
}else{
finalInput = input.getText().toString();
finalInput = finalInput.substring(0, finalInput.length() -1);
input.setText(finalInput);
input.setText(finalInput + "c");
clicks = 0;
}
}
});
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.243" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="20dp" />
<Button
android:id="@+id/abc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="2"
android:textSize="20dp" />
<Button
android:id="@+id/def"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="3"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/ghi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:textSize="20dp" />
<Button
android:id="@+id/jkl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="5"
android:textSize="20dp" />
<Button
android:id="@+id/mno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="6"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/pqrs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:textSize="20dp" />
<Button
android:id="@+id/tuv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="8"
android:textSize="20dp" />
<Button
android:id="@+id/wxyz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="9"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/zero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/default_gap"
android:text="0"
android:textSize="20dp" />
<Button
android:id="@+id/commit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Commit" />
</LinearLayout>
</GridLayout>
</androidx.constraintlayout.widget.ConstraintLayout>[![enter image description here][2]][2]
[1]: https://i.stack.imgur.com/cnagW.jpg
[2]: https://i.stack.imgur.com/L99Ya.png
解决方案
推荐阅读
- ios - CocoaLumberjack - Swift : Deleting Old Logs all of sudden
- python - Extracting specific values to sheets of the same name Python
- ruby-on-rails - 通过签名验证 Shipwire Webhook
- postgresql - postgres 中的 To_char(text) 函数
- jmeter - 将 JTL 文件导入 JMeter GUI 时读取 JTL 文件时出现问题
- javascript - 检测点击 youtube iframe javascript
- scala - 如何获取从 Spark 中的 S3 路径读取的文件数
- reactjs - 将 Slice.js 文件转换为 ts(redux 工具包)时出现类型错误
- kotlin - 在同一行初始化多个变量
- visual-studio-code - 代码格式化程序“无法格式化”JavaScript 文件