Java listview中的空指针
我有一个listview,它将从数据库中检索详细信息和日期。现在我要在listview中添加一个文本字段。textfield用于比较数据库中的日期并计算剩余的日期。首先,我尝试获取当前日期,以测试是否可以在listview或nt中显示该日期,但我没有显示它Java listview中的空指针,java,android,listview,Java,Android,Listview,我有一个listview,它将从数据库中检索详细信息和日期。现在我要在listview中添加一个文本字段。textfield用于比较数据库中的日期并计算剩余的日期。首先,我尝试获取当前日期,以测试是否可以在listview或nt中显示该日期,但我没有显示它 package my.com.chyi.schedulev2; import android.app.Activity; import android.app.Activity;
package my.com.chyi.schedulev2;
import android.app.Activity;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import my.com.chyi.schedulev2.SQLController;
/**
* Created by chyi1_000 on 3/19/2015.
*/
public class assigmentActivity extends Activity {
Button addass_bt;
ListView lv;
SQLController dbcon;
TextView assID_tv,assName_tv,assAtime_tv,assRemain;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_assign);
dbcon = new SQLController(this);
dbcon.open();
//assign module
addass_bt = (Button)findViewById(R.id.addAss_bt_id);
lv =(ListView)findViewById(R.id.assList_id);
//assig module
addass_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent add_ass = new Intent(assigmentActivity.this,Add_Assignment.class);
startActivity(add_ass);
}
});
//assig module
Cursor cursor = dbcon.readDataA();
//calculate days different
// list -> loop
// each row different days
String[] fromA = new String[] { DBhelper.ASSIGNMENT_ID,DBhelper.ASSIGNMENT_NAME,DBhelper.ASSIGNMENT_mTime, };
int[] toA = new int[] { R.id.assigment_id, R.id.assigment_name, R.id.assigment_ATime};
SimpleCursorAdapter adapterA = new SimpleCursorAdapter(
assigmentActivity.this, R.layout.view_assignment_entry, cursor, fromA, toA);
adapterA.notifyDataSetChanged();
lv.setAdapter(adapterA);
// assig module
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
assID_tv = (TextView) view.findViewById(R.id.assigment_id);
assName_tv = (TextView) view.findViewById(R.id.assigment_name);
assAtime_tv = (TextView)view.findViewById(R.id.assigment_ATime);
Calendar d = Calendar.getInstance();
SimpleDateFormat dfd = new SimpleDateFormat("yyyy-MM-dd");
String formattedDateD = dfd.format(d.getTime().toString());
String test = formattedDateD;
String assID_val = assID_tv.getText().toString();
String assName_val = assName_tv.getText().toString();
String assATime_val = assAtime_tv .getText().toString();
Intent modify_intent = new Intent(getApplicationContext(),
Modify_assignment.class);
modify_intent.putExtra("assName", assName_val);
modify_intent.putExtra("assID", assID_val);
modify_intent.putExtra("assAtime",assATime_val);
startActivity(modify_intent);
}
});
TextView babu = (TextView) findViewById(R.id.assigment_remain);
Calendar d = Calendar.getInstance();
SimpleDateFormat dfd = new SimpleDateFormat("yyyy-MM-dd");
String formattedDateD = dfd.format(d.getTime().toString());
babu.setText(formattedDateD);
}
尝试使用yyyy-MM-dd作为模式 在日期格式中添加一个“M”
String formattedDateD = dfd.format(d.getTime()).toString();
我在bubu.setTextformattedDateD的java.lang.NullPointerException处得到错误
这意味着代码中的bubu或babu为空
我想看一下这一行:
TextView babu = (TextView) findViewById(R.id.assigment_remain);
这可能没有找到视图,因此返回null
您的代码需要处理这种情况,您还需要跟踪视图的错误id。d.getTime是否返回某些内容?格式是否返回某些内容。只需将格式更改为dd MMM yyyyth d.getTime用于从日历中获取当前日期,我在新项目及其工作中尝试了此代码,bt在该项目中失败了这一行TextView babu=TextView findviewbydr.id.assigment\u是否仍返回空视图?你能调试它吗?我相信行TextView babu=TextView findviewbydr.id.assigment\u仍然存在;正在返回Null。
TextView babu = (TextView) findViewById(R.id.assigment_remain);