public class MainActivity extends AppCompatActivity
{
DatabaseHelper databaseHelper;
private static Toolbar mToolbar;
private static TextView mMaintitle,mMaincontent,mMaintime;
public static EditText dlx_Input1,dlx_Input2;
public static String datetime;
public static View mLine;
MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findName();
setSupportActionBar(mToolbar);
databaseHelper = new DatabaseHelper(this, databaseHelper.DATABASE_NAME,
null, databaseHelper.DATABASE_VERSION);
//myAdapter.getData2();
myAdapter = new MyAdapter(this);
myAdapter.lv = (ListView)findViewById(R.id.lv);
myAdapter.data = myAdapter.getData();
MyAdapter adapter = new MyAdapter(this);
myAdapter.lv.setAdapter(adapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_add:
showDialog_Layout(MainActivity.this);
}
return super.onOptionsItemSelected(item);
}
public void findName()
{
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mMaintitle = (TextView)findViewById(R.id.dlx_maintitle);
mMaincontent = (TextView)findViewById(R.id.dlx_maincontent);
mMaintime = (TextView)findViewById(R.id.dlx_maintime);
mLine = (View)findViewById(R.id.dlx_line);
}
private void showDialog_Layout(Context context) {
dlx_Input1 = (EditText)findViewById(R.id.dlx_Input1);
dlx_Input2 = (EditText)findViewById(R.id.dlx_Input2);
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setCancelable(false);
builder.setTitle(R.string.dlx_add);
builder.setPositiveButton("CANCEL",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
setTitle("");
}
});
builder.setNegativeButton("OK",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
datetime = s.format(new java.util.Date());
values.put("title", String.valueOf(dlx_Input1.getText()));
values.put("content", String.valueOf(dlx_Input2.getText()));
values.put("time", datetime);
db.insert(databaseHelper.TABLE_NAME, null, values);
myAdapter.getData();
}
});
builder.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
menu.findItem(R.id.action_add).setChecked(true);
return super.onCreateOptionsMenu(menu);
}
}
public class MyAdapter extends BaseAdapter
{
public static ListView lv;
public static List<Map<String, Object>> data;
public LayoutInflater mInflater = null;
MainActivity mainActivity;
DatabaseHelper databaseHelper;
public MyAdapter(Context context)
{
this.mInflater = LayoutInflater.from(context);
}
public List<Map<String, Object>> getData()
{
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
for(int i=0;i<10;i++)
{
map = new HashMap<String, Object>();
map.put("title",String.valueOf(mainActivity.dlx_Input1.getText()));
map.put("content", String.valueOf(mainActivity.dlx_Input2.getText()));
map.put("time",mainActivity.datetime);
list.add(map);
}
return list;
}
static class ViewHolder
{
public TextView title;
public TextView content;
public TextView time;
public View line;
}
public int getCount() {
//How many items are in the data set represented by this Adapter.
//在此适配器中所代表的数据集中的条目数
return data.size();
}
public Object getItem(int position) {
// Get the data item associated with the specified position in the data set.
//获取数据集中与指定索引对应的数据项
return position;
}
public long getItemId(int position) {
//Get the row id associated with the specified position in the list.
//获取在列表中与指定索引对应的行id
return position;
}
//Get a View that displays the data at the specified position in the data set.
//获取一个在数据集中指定索引的视图来显示数据
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
//如果缓存convertView为空,则需要创建View
if(convertView == null)
{
holder = new ViewHolder();
//根据自定义的Item布局加载布局
convertView = mInflater.inflate(R.layout.commentlayout, null);
holder.title = (TextView)convertView.findViewById(R.id.dlx_maintitle);
holder.content = (TextView)convertView.findViewById(R.id.dlx_maincontent);
holder.time = (TextView)convertView.findViewById(R.id.dlx_maintime);
holder.line = (View)convertView.findViewById(R.id.dlx_line);
//将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag
convertView.setTag(holder);
}else
{
holder = (ViewHolder)convertView.getTag();
}
holder.title.setText((String)data.get(position).get("title"));
holder.content.setText((String)data.get(position).get("content"));
holder.time.setText((String)data.get(position).get("time"));
holder.line.setBackgroundColor(mainActivity.getResources().getColor(R.color.colorPrimaryDark));
return convertView;
}
在map.put("title",String.valueOf(mainActivity.dlx_Input1.getText()));和myAdapter.data = myAdapter.getData();报空指针异常
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference,求大神指点!!!