列表视图和文本输入在 Java Android Studio 中工作异常

Posted

技术标签:

【中文标题】列表视图和文本输入在 Java Android Studio 中工作异常【英文标题】:listView and text input working weirdly in Java Android Studio 【发布时间】:2022-01-18 10:12:45 【问题描述】:

所以这是我第一次制作应用程序,几个月前我才开始,我正在测试制作应用程序,但遇到了一些问题,即添加按钮和列表视图。出于某种原因,每次我单击“添加项目”时,它都会删除时间段,但不会删除名称/文本段,这将在视频中看到。

其次,我需要输入文本 3 次(第三次会显示),然后才会显示带有时间的文本,这是布局、列表视图还是其他问题。要为我的手机(华为 P20 Pro)添加它,它需要 3 次(第 3 次尝试显示它)才能显示文本和时间。在模拟器上(像素 4)需要 2 次尝试(第 2 次尝试显示文本

正如我之前所说,我对 Java 和一般编程非常陌生,因此感谢您的帮助。 image of layout

Layout bug on Huawei p20 pro 添加项目代码:

 private void addItem(View view) 

    //name
    EditText input = findViewById(R.id.editText);
    String itemText = input.getText().toString();

    //time
    input = findViewById(R.id.editTextTime2);
    String str = input.getText().toString();
    DateFormat formatter = new SimpleDateFormat("hh:mm:ss");

    //adds items
    if (!(itemText.equals("")) && !(str.equals(" "))) 
        itemsAdapter.add(itemText + " " + str);
        input.setText("");
     else 
        Toast.makeText(getApplicationContext(), "Please enter text and time.", Toast.LENGTH_LONG).show();
    

编辑:我忘记添加但没有错误消息

编辑2:我也忘记添加了,但我不确定DateFormat和格式化程序是如何工作的,我只是在搜索如何使用时间文本时发现它。

【问题讨论】:

【参考方案1】:
//name
EditText input = findViewById(R.id.editText);
String itemText = input.getText().toString();

//time
input = findViewById(R.id.editTextTime2); //there is a mistake EditText input is assigned to 2 ids editText and editTextTime2
String str = input.getText().toString();
DateFormat formatter = new SimpleDateFormat("hh:mm:ss");

EditText 使用不同的名称不一样

//name
EditText input = findViewById(R.id.editText);
String itemText = input.getText().toString();

//time
EditText input2 = findViewById(R.id.editTextTime2);
String str = input2.getText().toString();
DateFormat formatter = new SimpleDateFormat("hh:mm:ss");

//adds items
    if (!(itemText.equals("")) && !(str.equals(""))) 
        itemsAdapter.add(itemText + " " + str);
        input.setText("");
        input2.setText("");
     else 
        Toast.makeText(getApplicationContext(), "Please enter text and time.", Toast.LENGTH_LONG).show();
    

【讨论】:

我的建议是不要使用 input 或 input2,因为值使用类似 name EditText 它应该 nameEditText 和 string nameString 这样它就不会混淆你 嘿,感谢您的帮助,它工作正常,现在文本工作正常。你知道如何解决第一个问题吗?我认为这与布局有关,因为我必须添加项目的次数因设备而异。我在我的问题中链接了视频,在此先感谢。 如果可能,再次更新您的代码添加完整代码以便我可以测试

以上是关于列表视图和文本输入在 Java Android Studio 中工作异常的主要内容,如果未能解决你的问题,请参考以下文章

android - 搜索列表视图?

在android中更改列表视图的文本颜色

Android - 自定义列表视图项始终位于左侧

Android列表视图setOnItemClickListener不起作用

Android如何使用复选框识别列表视图中的项目

Android listview - 获取自定义列表视图的文本