getText获取不到值

Kaimizu 2015-11-16 06:50:22
将dialog中的EditText赋值给两个全局变量,然后存入数据库,但是一直获取不到值,打了断点debug下有时候可以获取到,但是一走下一步又没了...各位大大求指点。

package com.ty.kaimizu.tellyou;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.TabActivity;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.media.SoundPool;
import android.nfc.Tag;
import android.support.v4.view.LayoutInflaterCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import static com.ty.kaimizu.tellyou.R.id.Content;
import static com.ty.kaimizu.tellyou.R.id.et_name;


public class MainActivity extends TabActivity{

private ListView lv_contacts;

private Button contacts_creat,contacts_add;
private Button content_save,content_del;
private Context context;
private Dialog mDialog;
private EditText content_et;
private MyAdapter adapter;
private Cursor cursor;
private DBHelper mDBHelper;
private SQLiteDatabase dbReader, dbWriter;
private LinearLayout layout;
private EditText dlg_name,dlg_num;
private String textname, textnum;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
selectDB();
}



/**
* 初始化视图
*/
public void initView(){
final TabHost tabHost = this.getTabHost();
TabHost.TabSpec contacts = tabHost.newTabSpec("Contacts").setIndicator("Contacts")
.setContent(R.id.Contacts);
tabHost.addTab(contacts);
TabHost.TabSpec content = tabHost.newTabSpec("Content").setIndicator("Content")
.setContent(R.id.Content);
tabHost.addTab(content);
TabHost.TabSpec time = tabHost.newTabSpec("Time").setIndicator("Time")
.setContent(R.id.Time);
tabHost.addTab(time);

mDBHelper = new DBHelper(this);
dbReader = mDBHelper.getReadableDatabase();
dbWriter = mDBHelper.getWritableDatabase();

contacts_creat = (Button)findViewById(R.id.creat);
contacts_add = (Button)findViewById(R.id.add);
content_save = (Button)findViewById(R.id.save);
content_del = (Button)findViewById(R.id.del);
content_et = (EditText)findViewById(R.id.content_et);
lv_contacts = (ListView)findViewById(R.id.lv_Contacts);

contacts_creat.setOnClickListener(new clickListener());
contacts_add.setOnClickListener(new clickListener());
content_save.setOnClickListener(new clickListener());
content_del.setOnClickListener(new clickListener());

lv_contacts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
cursor.moveToPosition(position);

}
});



}

public void selectDB(){
cursor = dbReader.query(DBHelper.TABLE_NAME, null, null, null, null, null, null);
adapter = new MyAdapter(this, cursor);
lv_contacts.setAdapter(adapter);

}

private class clickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.creat:
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
layout = (LinearLayout)inflater.inflate(R.layout.layout_dialog, null);
dlg_name = (EditText)layout.findViewById(R.id.et_name);
dlg_num = (EditText)layout.findViewById(R.id.et_num);


LayoutInflater inflater1 = getLayoutInflater();
View layout1 = inflater1.inflate(R.layout.layout_dialog,
(ViewGroup)findViewById(R.id.dialog));
new AlertDialog.Builder(MainActivity.this).setTitle("Input").setView(layout1)
.setNegativeButton("Cancel",null)
.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
textname = dlg_name.getText().toString();
textnum = dlg_num.getText().toString();
SaveInfo();
Toast.makeText(MainActivity.this, "数据插入成功", Toast.LENGTH_SHORT).show();
}
}).show();
break;
case R.id.add:

break;
case R.id.save:

break;
case R.id.del:
LayoutInflater inflater2 = getLayoutInflater();
View layout2 = inflater2.inflate(R.layout.layout_del_dialog,
(ViewGroup)findViewById(R.id.dialog));
new AlertDialog.Builder(MainActivity.this).setTitle("提示").setView(layout2)
.setPositiveButton("Yes",null)
.setNegativeButton("Cancel",null).show();

break;
}
}
}

@Override
protected void onResume() {
super.onResume();

}

public void SaveInfo(){
ContentValues cv = new ContentValues();
cv.put(DBHelper.NAME, textname);
cv.put(DBHelper.NUM, textnum);
dbWriter.insert(DBHelper.TABLE_NAME, null, cv);
}




}


...全文
278 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kaimizu 2015-11-18
  • 打赏
  • 举报
回复
引用 1 楼 a87b01c14 的回复:
SaveInfo()函数中输出下textname和textnum的值 然后看下dbWriter.insert(DBHelper.TABLE_NAME, null, cv);的返回值,才能判断是否插入成功 有可能数据插入错误
print出来textname和textnum的值都是空的... textname = dlg_name.getText().toString(); textnum = dlg_num.getText().toString(); 断点调试这两句在某个阶段是可以取到值的,但是下一步就没了
Kaimizu 2015-11-18
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
LayoutInflater inflater1 = getLayoutInflater();
 View layout1 = inflater1.inflate(R.layout.layout_dialog,(ViewGroup)findViewById(R.id.dialog));
这两句代码删除,把下面的setView(layout1)改成setView(layout);
是了,这样就可以了..
jklwan 2015-11-18
  • 打赏
  • 举报
回复
LayoutInflater inflater1 = getLayoutInflater();
 View layout1 = inflater1.inflate(R.layout.layout_dialog,(ViewGroup)findViewById(R.id.dialog));
这两句代码删除,把下面的setView(layout1)改成setView(layout);
sanxiaochengyu 2015-11-16
  • 打赏
  • 举报
回复
SaveInfo()函数中输出下textname和textnum的值 然后看下dbWriter.insert(DBHelper.TABLE_NAME, null, cv);的返回值,才能判断是否插入成功 有可能数据插入错误

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧