我是android studio的新手, 我正在使用listItem。下面是我的一些代码
String[] items = {
"1 st",
"2 nd",
"3 rd",
"4 th"};
titleList = new ArrayList<>(Arrays.asList(items));
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
listView.setAdapter(adapter);
以上代码正常工作。但我想要使用超过1个数组树我想使用2D数组,但我无法理解这里做的是我尝试的新代码。但失败了
String[][] items = {
{"1 st","12 th Sept"},
{"2 nd","13 th Sept"},
{"3 rd","14 th Sept"},
{"4 th","15 th Sept"},
};
titleList = new ArrayList<>(Arrays.asList(items[0]));
dateList = new ArrayList<>(Arrays.asList(items[1]));
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.date,dateList);
listView.setAdapter(adapter);
答案 0 :(得分:0)
我认为数组实例化是正确的语法,但是当你想要一个2x4数组时,你正在创建一个4 x 2数组。
你试过了吗?
import pandas as pd
import numpy as np
time_d = datetime_1 - datetime_2
#for a single value
number_of_days =pd.DataFrame([time_d]).apply(np.float32)
#for a Dataframe
number_of_days = time_d.apply(np.float32)
答案 1 :(得分:0)
1)您应该更改2d array
的顺序,如下所示。但它仍然无效(见下一点)
String[][] items = {
{"1 st", "2 nd", "3 rd", "4 th"},
{"12 th Sept", "13 th Sept", "14 th Sept", "15 th Sept"},
};
2)在第一行中,您的adapter
引用了ArrayAdapter
titlelist
,在下一行中,您正在更改< strong>相同 adapter object
指向datelist
ArrayAdapter
。
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.txtitem,titleList);
adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.date,dateList);
因此,在第二行之后,您的适配器不再指向titlelist
ArrayAdapter。它仅指datelist
ArrayAdapter。实际上,它永远不能同时包含datelist
和titlelist
。
那么正确的方法是什么?
创建一个包含class
和title
的模型date
,如下所示 -
class YourModel {
String title;
String date;
}
创建此模型类的array
个对象,并将此对象数组传递给您的自定义adapter
。这是唯一方式。您必须创建自定义ArrayAdapter。从here了解相关信息。
答案 2 :(得分:0)
2维是一个包含数组作为元素的数组。这些元素或数组都可以具有相同的长度或相同数量的int值或不同的数字,这可以打破矩阵方法。
int[][] myArray= new array[3][2];
表示这是一个包含3个数组的数组,其中包含2个int值(默认值为0)。
myArray[0] = {0,0};
myArray[1] = {0,0};
myArray[2] = {0,0};
或者您可以将其解释为3x2矩阵,包含3行和2列 您还可以声明包含具有不同大小的1维数组的2维数组。
int[][] otherArray= new array[3][];
otherArray[0] = new array[3];
otherArray[1] = new array[4];
otherArray[2] = new array[5];
或者您可以为元素分配初始值。
otherArray[0] = {1,2,3};
otherArray[1] = {4,5,6,7};
otherArray[2] = {1,2,3,4,5};
现在你可以得到返回5的otherArray [2] [4],但是你不能得到otherArray [1] [4],因为它不存在并返回IndexOutOfBoundException。二维数组是包含数组的数组。