我尝试在String
中添加ListView
,但在创建ArrayAdapter
对象时会出现此错误:
Error:(32, 48) error: no suitable constructor found for ArrayAdapter(<anonymous OnClickListener>,int,List)
constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
我在这里得到的是<anonymous OnClickListener> cannot be converted to Context
,但不知道如何修复它。
我的代码是:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private static List listArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.itemList);
Button button = (Button)findViewById(R.id.addButton);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
EditText itemNameView = (EditText)findViewById(R.id.itemName);
String itemName = itemNameView.getText().toString();
listArray.add(itemName);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listArray);
adapter.add(itemName);
listView.setAdapter(adapter);
}
});
}
}
并且从上面的代码中抛出以下行的错误:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listArray);
答案 0 :(得分:1)
初始化您的列表并执行此操作
listview = (ListView) findViewById(R.id.listview);
Button button = (Button)findViewById(R.id.button);
listArray = new ArrayList();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText edittext = (EditText) findViewById(R.id.edittext);
listArray.add(edittext.getText().toString().trim());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListviewMainActivity.this, android.R.layout.simple_list_item_1, listArray);
listview.setAdapter(adapter);
}
});
答案 1 :(得分:0)
尝试这种方法可行。首先,您必须初始化ArrayList
并创建条件if(!listdata.isEmpty())
。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String data = edt.getText().toString();
ArrayList<String> listdata = new ArrayList<String>();
listdata.add(data);
if(!listdata.isEmpty()){
ArrayAdapter adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, listdata);
list.setAdapter(adapter);
}
}
});
}