当前位置: 首页 > 知识库问答 >
问题:

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

狄峰
2023-03-14

编辑:需要知道如何创建由Textview填充的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);
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个答案

伍成仁
2023-03-14

如果要为字符串列表创建适配器,它将如下所示:

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);
 类似资料:
  • 我对编程很陌生,一直在尝试为学校项目的片段添加一个列表视图+arrayadapter。已经提到了这个问题,但没有用。https://stackoverflow.com/questions/32350275/no-application-constructor-found-for-ArrayAdapterMainListActivity-getBlogPostStask#= }

  • 问题内容: 只有最后一部分(我的意思是我仅对此有问题) 当我编译它时,我没有合适的构造函数错误。为什么是这样??顺便说一下,Spirtokouto类的目的是要增加一个计数值(权重)。我可以将一个班级扩展到> 1个班级吗? 问题答案: Box类有两个构造函数:,但它们都不带四个参数,而您要用四个参数来调用它,因此请更改此参数: 对此: 调用必须首先在构造函数中进行。 我可以将一个班级扩展到 > 1个

  • 问题内容: 我创建了一个显示聊天消息的函数,遵循了教程,并且查看了Firebase列表适配器的文档,但是无论我做什么,都会出现此错误: 这是我的代码: 问题答案: 从FirebaseUI 3.0+版本中隐含以下内容 删除此: 您需要添加以下内容: 是您对列表适配器示例进行的查询: 更多信息在这里: 使用FirebaseUI填充ListView

  • 当创建Gio controller对象时,可以将配置参数传递给controller,具体传递方式如下所示: var configs = {         color: {                 surface:0xFF0000         } }; var globe = new Gio.controller(container, configs);

  • JavaScript 中的构造函数和其它语言中的构造函数是不同的。 通过 new 关键字方式调用的函数都被认为是构造函数。 在构造函数内部 - 也就是被调用的函数内 - this 指向新创建的对象 Object。 这个新创建的对象的 prototype 被指向到构造函数的 prototype。 如果被调用的函数没有显式的 return 表达式,则隐式的会返回 this 对象 - 也就是新创建的对象

  • 我得到了以下警告: 自定义视图COM/example/view/adapter/someAdapter缺少工具使用的构造函数:(Context)或(Context,AttributeSet)或(Context,AttributeSet,int) 在我的类中,某个Adapter扩展了某个BaseAdapter扩展了ArrayAdapter 该警告存在于具体适配器中,而不存在于抽象的基适配器中。有人听