我正在尝试从多维数组填充微调器。但是,当我现在运行应用程序时,我收到此错误:
string inputPath = "<input.txt file path>";
string outputPath = "<output.txt file path>";
for (int iterator = 0; iterator < 10000; iterator++)
{
bool exists = false;
long startTimeMillis = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
while (!exists)
{
if (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - startTimeMillis >= 5 * 60 * 1000) Environment.Exit(0);
if (File.Exists(inputPath))
{
exists = true;
FileStream f = File.Open(inputPath, FileMode.Open);
String output = String.Empty;
for (int i = 0; i < f.Length; i++)
{
output += (char)f.ReadByte();
}
f.Dispose();
File.WriteAllText(outputPath, output);
File.Delete(inputPath);
}
}
}
Environment.Exit(0);
我想我不确定如何将数组的第一列数据放入微调器。
Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
这是activity_main.xml:
//This method loads test scores into an array and populates spinner
public void nameArrayListMethod (){
InputStreamReader InputSR = null;
BufferedReader BufferedRdr = null;
String thisLine = null;
AssetManager am = getAssets();
try {
InputSR = new InputStreamReader(am.open("scoresdata/test_scores.txt"));
BufferedRdr = new BufferedReader(InputSR);
// open input stream test_scores for reading purpose.
int i = 0;
while ((thisLine = BufferedRdr.readLine()) != null) {
System.out.println(thisLine);
String[] parts = thisLine.split(" ");
testScoreList[i][0] = parts[0];
testScoreList[i][1] = parts[1];
i = i +1;
}
BufferedRdr.close();
InputSR.close();
} catch (Exception e) {
e.printStackTrace();
}
spinner= (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, testScoreList[0]);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
}
编辑2:
这是文本文件:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Name"
android:gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Math Grade"
android:gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="English Grade"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner1"
android:layout_weight="1"
android:gravity="center"
android:hint="Name" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_weight="1"
android:gravity="center"
android:hint="Grade"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText3"
android:layout_weight="1"
android:gravity="center"
android:hint="Grade"/>
</LinearLayout>
现在它似乎部分正常工作,但它用第一行而不是第一列填充微调器。如何使用列填充它?
谢谢,
Airfix膨胀
答案 0 :(得分:0)
好吧,我终于明白了。我创建了一个新数组并在while循环中使用它,它基本上提取了多维数组的第一列,并将其用作我的微调器名称。
这是我的代码,它可能不是很漂亮但它有效。感谢0X0nosugar的帮助,并指出了我正确的方向。
//This method loads test scores into an array and populates spinner
public void nameArrayListMethod (){
InputStreamReader InputSR = null;
BufferedReader BufferedRdr = null;
String thisLine = null;
AssetManager am = getAssets();
String[] SpinnerNames = new String[3];
try {
InputSR = new InputStreamReader(am.open("scoresdata/test_scores.txt"));
BufferedRdr = new BufferedReader(InputSR);
// open input stream test_scores for reading purpose.
int i = 0;
while ((thisLine = BufferedRdr.readLine()) != null) {
//System.out.println(thisLine);
String[] parts = thisLine.split(" ");
testScoreList[i][0] = parts[0];
testScoreList[i][1] = parts[1];
testScoreList[i][2] = parts[2];
SpinnerNames[i] = testScoreList[i][0]; //Extract first column for spinner
//System.out.println(testScoreList[i][0] + " " + testScoreList [i][1] + " " + testScoreList[i][2]);
i = i +1;
}
BufferedRdr.close();
InputSR.close();
} catch (Exception e) {
e.printStackTrace();
}
spinner= (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, SpinnerNames);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
}
当它最终以您希望的方式工作时,它真的令人满意。接下来的任务是弄清楚如何使它适用于不同的数组大小。
由于
Airfix膨胀