【问题标题】:Java getText().toString() for naming a String arrayJava getText().toString() 用于命名字符串数组
【发布时间】:2017-01-31 05:28:40
【问题描述】:

我一直在使用 Android Studio 自学 Java/XML,希望能得到一些帮助。我正在尝试创建一个购物清单应用程序,但在数组内命名字符串数组时遇到问题。我设置了一个 ArrayList,但我想用字符串数组填充 ArrayList。当我尝试添加字符串输入(来自用户)时,我收到一条错误消息:

无法应用 List 中的 add (java.lang.String[])
到 (java.lang.String)

这是我的代码:

public class ShoppingLists extends AppCompatActivity {

    /* Create ArrayList (from List) and Adapter for the ListView */
    List<String[]> shoppingLists = null;
    ArrayAdapter<String> adapter = null;
    ListView lv = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shopping_lists);

        /* Create main array */
        shoppingLists = new ArrayList<>();

        /* Set view style with adapter */
        adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, shoppingLists);
        lv = (ListView) findViewById(R.id.shoppingListView);
        lv.setAdapter(adapter);
    }

    /* Create a menu. */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.shopping_menu, menu);
        return true;
    }

    /* Create actions for menu button presses */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        /* Determine which menu button is pressed */
        switch (item.getItemId()) {
            case R.id.action_add:
                /* Create an alert dialog for user input */
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle(getString(R.string.add_list));
                final EditText input= new EditText(this);
                builder.setView(input);

                /* If 'OK' is pressed, enter user input as new object into shoppingLists array */
                builder.setPositiveButton(getString(R.string.ok_button), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        /* Convert user input to string and add it to list */
                        shoppingLists.add(input.getText().toString());
                        /* Update adapter with new object to make visible */
                        lv.setAdapter(adapter);
                    }
                });
                builder.setNegativeButton(getString(R.string.cancel_button), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        /* Exit dialog box without adding new object */
                        dialog.cancel();
                    }
                });
                builder.show();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

错误在这里加了下划线:

shoppingLists.add(input.getText().toString());

我感觉我错过了一些简单的东西,但我想不通。

提前感谢您的帮助!

【问题讨论】:

  • 你有一个 String[] 列表。您正在尝试添加一个字符串。 [] 很可能是一个错误,并且您想将 shoppingLists 设为 List

标签: java android string arraylist


【解决方案1】:

有两种解决方案

1-List&lt;String[]&gt; shoppingLists = null;改为List&lt;String&gt; shoppingLists = null;

2- 首先将输入文本添加到字符串数组,然后将该字符串数组添加到列表中,如下所示:String[] strArray = {input.getText().toString()}; shoppingLists.add(strArray);

【讨论】:

    【解决方案2】:

    List&lt;String[]&gt; shoppingLists = null;应该是

    List<String> shoppingLists = null;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 2016-04-13
      • 2013-03-29
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多