【问题标题】:ItemList Android Studio in Array数组中的 ItemList Android Studio
【发布时间】:2021-10-30 00:12:09
【问题描述】:

我在将项目存储在数组列表中时遇到问题,这是我的代码

package com.example.java;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ListView;

import org.w3c.dom.Element;

import java.sql.Array;
import java.util.ArrayList;
import java.util.Arrays;

public class MainActivity3 extends AppCompatActivity {
    private static final String Tag = "MainAcitivity3";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        Log.d(Tag, "onCreate: Started.");
        ListView mListView = (ListView) findViewById(R.id.listView);
        Intent intent = getIntent();
        String asd = intent.getStringExtra(MainActivity2.namabarang);
        String asdf = intent.getStringExtra(MainActivity2.jumlahstock);

        Item sparepart = new Item(asd,asdf);
        ArrayList<Item> itemlist = new ArrayList<Item>();
        itemlist.add(sparepart);

        PersonListAdapter adapter = new PersonListAdapter(this, R.layout.adapter_view_layout,itemlist);
        mListView.setAdapter(adapter);

        String number = intent.getStringExtra(MainActivity2.extraint);
        if(number != null) {
            FrameLayout lay = (FrameLayout) findViewById(R.id.frames);
            if (number.equals("1")) {
                lay.setVisibility(View.INVISIBLE);
                mListView.setVisibility(View.VISIBLE);
            } else {

            }
        }
        else{}

    }

    public void onBtnClick (View view){
        Intent intent = new Intent(this,MainActivity2.class);
        startActivity(intent);
    }



}

我尝试做的是项目列表中项目的存储将通过数组编号通知自动化。因此,我将在 itemlist 中添加循环以存储该项目,但问题是当我想将其放入 ArrayList[] itemlist = new ArraList[];有错误。

所以我尝试做的是

public void onCreate(){
    int loop=0;
    loop++;
    String asd = intent.getStringExtra(MainActivity2.namabarang);
    String asdf= intent.getStringExtra(MainActivity2.jumlahstock);
    Item sparepart = new Item(asd,asdf);
    ArrayList<item>[] itemlist= new ArrayList[]();
    itemlist[loop] = sparepart;
}

所以每次MainActivity3运行时都会将字符串保存在数组0中,然后在另一个Activity中运行,当回到MainActivity3时,字符串将保存在数组1中。请帮助

【问题讨论】:

  • 也许您尝试使用弱翻译,我们无法很好地理解您,您应该添加更多详细信息,说明您想要做什么以及错误在哪里?
  • 错误出现在 ArrayList listview 中,我尝试将 ArrayList[] listview=new ArrayList[] 放入数组中。目的是将Arraylist中的列表项保存到特定数量的数组中。
  • 还是其他页面的适配器导致的错误?
  • 我尝试做的是当时间定向到 MainAcitivity3 时,它将获取项目的数据并将其存储到数组 [0] 中。当按钮单击时,它将返回到其他 MainAcitivity。当它第二次指向 MainActivity3 时,它将将该项目存储在数组 [1] 中并再次重复。

标签: java android arrays sorting


【解决方案1】:

您的语法错误。创建ArrayList的数组,语法是:

ArrayList<Item>[] itemlist = new ArrayList[10];

你需要在初始化时指定大小,因为它是一个数组,大小是固定的。此外,最好使用 ArrayList 的 ArrayList 而不是 ArrayList 的数组。

相关话题:How can I create an Array of ArrayLists?

【讨论】:

  • 当使用arraylist的arraylist时,我认为我不能指向特定数量的数组,如array[0]和array[1],因为我计划在每个按钮单击时将一个项目保存在数组中,通过数组我可以使用 int integer++;在应用程序运行时自动生成和保存项目
  • 这里改成上面的代码又报错了。
  • 错误:不兼容的类型:ArrayList[] 无法转换为 ArrayList PersonListAdapter adapter = new PersonListAdapter(this, R.layout.adapter_view_layout,itemlist);
  • 改成PersonListAdapter时adapter = new PersonListAdapter(this, R.layout.adapter_view_layout,itemlist[0]); mListView.setAdapter(适配器);应用程序被强制关闭
  • @Daniel 你可以使用arrayList.add(element)、arrayList.get(index) 和arrayList.set(index, element) 对吧?
猜你喜欢
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多