【发布时间】: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