的“ArrayAdapter”没有被设置
问题描述:
我试图在ListView
添加String
而是创建一个ArrayAdapter
对象收到此错误时:的“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);
答
初始化列表,做这样的
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);
}
});
答
尝试使用这种方法。首先,您必须初始化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);
}
}
});
}
但我想从'EditText'中取一个字符串,然后每次点击'Button'时将它添加到'ListView'。 –
所以我选择在'Button'的'onClickListener'中创建'ArrayAdapter'。但'ArrayAdapter'为'this'参数引发错误。错误'不能转换为Context'。 –
也加入这一行listArray = new ArrayList();和干净的项目,然后运行 –