Сначала создайте класс адаптера следующим образом:
public class DemoAdapter extends BaseAdapter {
private ArrayList<String> data;
private Context context;
private LayoutInflater inflater;
public DemoAdapter(ArrayList<String> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return data.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
MyViewHolder myViewHolder;
if (view==null){
view = inflater.inflate(android.R.layout.simple_list_item_1,viewGroup,false);
myViewHolder = new MyViewHolder(view);
view.setTag(myViewHolder);
} else {
myViewHolder = (MyViewHolder) view.getTag();
}
myViewHolder.myTv.setText(data.get(i));
return view;
}
class MyViewHolder{
TextView myTv;
public MyViewHolder(View item){
myTv = item.findViewById(android.R.id.text1);
}
}
}
Затем в вашем методе generate1 инициализируйте его следующим образом:
DemoAdapter adapter = DemoAdapter(this,ls);
listView.setAdapter(adapter);