ArrayList适配器构造函数失败(?)

时间:2015-07-08 19:40:59

标签: java android arraylist android-arrayadapter

编辑:需要知道如何创建由Textview填充的ArrayList

我正在尝试为多维(2D)ArrayAdapter创建ArrayList

        final ArrayAdapter<ArrayAdapter<ArrayList<String>>> adapterNames = new ArrayAdapter<ArrayAdapter<ArrayList<String>>>(this,android.R.layout.simple_list_item_1, android.R.id.text1, arrayNamesOne);

这是我得到的日志错误:

  

错误:(28,76)错误:找不到合适的构造函数   ArrayAdapter(MainActivity,INT,INT,ArrayList的&GT)   构造函数   ArrayAdapter.ArrayAdapter(上下文,INT,INT,ArrayAdapter&GT; [])   不适用(参数不匹配; ArrayList&gt;   无法转换为ArrayAdapter&gt; [])构造函数   ArrayAdapter.ArrayAdapter(上下文,INT,INT,列表&gt;&GT)   不适用(参数不匹配; ArrayList&gt;   无法转换为List&gt;&gt;)

如果您希望更好地了解感兴趣的整个代码,请转到:

public class MainActivity extends ActionBarActivity {
//1ST DECLARATION
ArrayList<ArrayList<String>> arrayNamesOne = new ArrayList<ArrayList<String>>();
ListView listNamesOne;
TextView namesTextOne;

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


    //1ST SETUP
    listNamesOne = (ListView) findViewById(R.id.listNamesId);
    namesTextOne = (TextView) findViewById(R.id.namesTexter);

    final ArrayAdapter<ArrayAdapter<ArrayList<String>>> adapterNames = new ArrayAdapter<ArrayAdapter<ArrayList<String>>>(this,android.R.layout.simple_list_item_1, android.R.id.text1, arrayNamesOne);
    listNamesOne.setAdapter(adapterNames);
    //END 1ST SETUP

    //1ST BUTTON '+'
    Button buttonPlus = (Button)findViewById(R.id.buttonPlus);
    buttonPlus.setOnClickListener(
            new Button.OnClickListener() {
                //CLICK EVENT
                @Override
                public void onClick(View v) {
                    //IF EMPTY
                    if (namesTextOne.getText().toString().isEmpty()){
                        Context context = getApplicationContext();
                        CharSequence text = "Add an item first";
                        int duration = Toast.LENGTH_SHORT;
                        Toast.makeText(context, text, duration).show();
                    //IF SPACES ONLY
                    }else if(namesTextOne.getText().toString().trim().isEmpty()){
                        Context context = getApplicationContext();
                        CharSequence text = "You can't use spaces only";
                        int duration = Toast.LENGTH_SHORT;
                        namesTextOne.setText("");
                        Toast.makeText(context, text, duration).show();
                    //ALRIGHT, ADD IT!
                    } else if(!namesTextOne.getText().toString().isEmpty()) {
                        arrayNamesOne.add(0, (ArrayList<String>) namesTextOne.getText());
                        adapterNames.notifyDataSetChanged();
                        namesTextOne.setText("");
                    }

                }
            }
    );
}

1 个答案:

答案 0 :(得分:1)

如果您要为字符串列表创建适配器,则需要:

ArrayList<String> array = new ArrayList<String>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, android.R.id.text1, array);

因此,字符串列表列表的适配器如下所示:

ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();
ArrayAdapter<ArrayList<String>> adapter = new ArrayAdapter<ArrayList<String>>(this,android.R.layout.simple_list_item_1, android.R.id.text1, array);