Android ArrayAdapter错误
下面是我的代码,只是试图在列表视图上显示项目,但它给了我空指针异常。有什么想法吗?我只是在最后一个数组中组合了两个字符串,log cat指向最后带有arrayAdapter的行Android ArrayAdapter错误,android,arrays,eclipse,android-arrayadapter,Android,Arrays,Eclipse,Android Arrayadapter,下面是我的代码,只是试图在列表视图上显示项目,但它给了我空指针异常。有什么想法吗?我只是在最后一个数组中组合了两个字符串,log cat指向最后带有arrayAdapter的行 package com.example.forecastspending; import java.text.DecimalFormat; import android.app.TabActivity; import android.os.Bundle; import android.view.View; impor
package com.example.forecastspending;
import java.text.DecimalFormat;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.TabHost.TabSpec;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TabHost;
import android.app.Activity;
import android.widget.TextView;
import android.app.ListActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Color;
public class SavingsForecastActivity extends MainActivity {
ListView recurrenceListView;
Button add_btn;
EditText reccurenceEntry_et;
EditText reccurenceExplanation_et;
// Double[] comparisonArray = new Double[8];
int reccurenceCounter;
String[] reccurenceArray = new String[30];
String[] reccurenceExpArray = new String[30];
String[] finalDisplayArray = new String[30];
private ArrayAdapter arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.forecast);
ListView recurrenceListView = (ListView) findViewById( R.id.recurrenceListView );
reccurenceEntry_et = (EditText) findViewById( R.id.reccurenceEntry_et );
reccurenceExplanation_et = (EditText) findViewById( R.id.reccurenceExplanation_et );
Button add_btn = (Button) findViewById( R.id.add_btn);
add_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addRecurrence();
//calculateMovingAverage();
}
});
}
public void addRecurrence(){
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();
// brings it in from activity 2
// Double bankBalanceMainAct = Double.parseDouble(pref.getString("bankBalance","0"));
int reccurenceCounter = pref.getInt("rCount",0);
double reccurenceInput = Double.valueOf(reccurenceEntry_et.getText().toString());
String rExpInput = reccurenceExplanation_et.getText().toString();
editor.putString("rInput",reccurenceInput+"");
editor.commit();
String rInput = pref.getString("rInput","0");
//adds the new cost to the reccurence array to dispaly for user
reccurenceArray[reccurenceCounter] = rInput;
//reccurenceExpArray[reccurenceCounter] = rExpInput;
finalDisplayArray[reccurenceCounter] = rInput + "" +rExpInput;
reccurenceCounter = reccurenceCounter + 1;
editor.putInt("rCount",reccurenceCounter);
editor.commit();
for(int i = 0; i < finalDisplayArray.length; i++){
finalDisplayArray[i] = "0";
}
arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, finalDisplayArray);
recurrenceListView.setAdapter(arrayAdapter);
}
package com.example.forecastExpension;
导入java.text.DecimalFormat;
导入android.app.TabActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.EditText;
导入android.widget.TabHost.TabSpec;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.TabHost;
导入android.app.Activity;
导入android.widget.TextView;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.content.SharedReferences.Editor;
导入android.graphics.Color;
公共类savingsforecastativity扩展main活动{
ListView重现ListView;
按钮添加按钮;
编辑文本检索条目;
编辑文本检索解释等;
//Double[]comparisonArray=新的Double[8];
计数器;
String[]reccurenceArray=新字符串[30];
String[]reccurenceExpArray=新字符串[30];
字符串[]finalDisplayArray=新字符串[30];
专用阵列适配器阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.forecast);
ListView recurrenceListView=(ListView)findViewById(R.id.recurrenceListView);
reccurenceEntry\u et=(EditText)findViewById(R.id.reccurenceEntry\u et);
ReccurenceExpression\u et=(EditText)findViewById(R.id.ReccurenceExpression\u et);
按钮add_btn=(按钮)findviewbyd(R.id.add_btn);
添加_btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
addRecurrence();
//计算平均值();
}
});
}
公共无效重复次数(){
SharedReferences pref=getApplicationContext()。GetSharedReferences(“MyPref”,0);//0-用于私有模式
编辑器编辑器=pref.edit();
//把它从活动2中带进来
//Double bankBalanceMainAct=Double.parseDouble(pref.getString(“bankBalance”,“0”));
int reccurenceCounter=pref.getInt(“rCount”,0);
double reccurenceInput=double.valueOf(reccurenceEntry_et.getText().toString());
字符串rExpInput=ReccurenceExplainion_et.getText().toString();
editor.putString(“rInput”,reccurenceInput+”);
commit();
String rInput=pref.getString(“rInput”,“0”);
//将新成本添加到reccurence数组中,以显示给用户
reccurenceArray[reccurenceCounter]=rInput;
//reccurenceExpArray[reccurenceCounter]=rExpInput;
finalDisplayArray[reccurenceCounter]=rInput+“”+rExpInput;
reccurenceCounter=reccurenceCounter+1;
编辑输入(“rCount”,reccurenceCounter);
commit();
for(int i=0;i
}使用
recurrenceListView = (ListView) findViewById( R.id.recurrenceListView );
而不是
ListView recurrenceListView = (ListView) findViewById( R.id.recurrenceListView );
因为在
onCreate
中,您是ListView
的新实例,而不是在onCreate
之前创建的recurrenceListView
初始化在onCreate()中重复出现ListView之前,请尝试删除ListView关键字。