10碎鑽
本帖最後由 b770428 於 2017-9-1 16:55 編輯
先講一下我的目的
是想要建立一個可以讓使用者自行輸入資料表 欄位名稱 以及資料內容的app
而底下的程式碼只是一部分目前的一部分
這個部分的目的是要讓使用者點選側邊欄的按鈕之後,出現一個AlertDialog對話視窗
在AlertDialog或對話視窗裡面加入多數個EditText,並在使用者按下對話框的check按鈕之後取得多數個使用者輸入的值
,不過本代碼先以兩個EditText的時候試試看,發現不管使用者輸入什麼值取得的都是""
不知道到底是為什麼??
手機App畫面是這個樣子
上圖兩個EditText輸入值之後用getText()取到的值經過測試以後發現都是"" 取不到使用者實際輸入的值....
- package com.example.sca;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.app.ProgressDialog;
- import android.content.ContentProviderOperation.Builder;
- import android.content.ContentValues;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.WindowManager;
- import android.widget.Adapter;
- import android.widget.EditText;
- import android.widget.LinearLayout;
- import android.widget.ListView;
- import android.widget.SimpleCursorAdapter;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- public static int id;
- public static ListView lv;
- public static SimpleCursorAdapter sca;
- public static LinearLayout ll;
- public static String test="tes";
- public static AlertDialog alertdialog;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- this.lv=new ListView(this);
- this.ll=(LinearLayout)findViewById(R.id.LinearLayout1);
- SQLiteDatabase MyDB=openOrCreateDatabase("MyDB",Context.MODE_PRIVATE,null);
- String createTable="CREATE TABLE IF NOT EXISTS list(_id VARCHAR(32),name VARCHAR(64))";
- MyDB.execSQL(createTable);
-
- Cursor cs=MyDB.query("list", null, null, null, null, null, null);
- cs.moveToFirst();
- if (cs.getCount()==0){
- id++;
- ContentValues cv=new ContentValues();
- cv.put("_id", id);
- cv.put("name", "Lin");
- MyDB.insert("list", null, cv);
- ContentValues cv2=new ContentValues();
- id++;
- cv2.put("_id", id);
- cv2.put("name", "WANG");
- MyDB.insert("list", null, cv2);
- cs=MyDB.query("list", null, null, null, null, null, null);
- }
- String[] Columns={"name"};
- int[] View_ids={R.id.TextView1};
- ListView lv=new ListView(this);
- lv.setAdapter(sca);
- this. sca=new SimpleCursorAdapter(this,R.layout.activity_main,cs,Columns,View_ids);
-
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- alertdialog=new AlertDialog.Builder(this)
- .setAdapter(sca, null)
- .create();
- alertdialog
- .setButton("check", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- alertdialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE ,WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
- test=((EditText)((LinearLayout)sca.getView(1, ll, lv)).getChildAt(1)).getText().toString();
- TextView tv3=new TextView(MainActivity.this);
- ll.addView(tv3);
- tv3.setText(test);
- }
- });
- alertdialog.show();
- alertdialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
- TextView tv2=new TextView(this);
- ll.addView(tv2);
- tv2.setText(this.test);
-
- int id = item.getItemId();
- if (id == R.id.action_settings) {
-
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- }
複製代碼
下面是我主頁的XML
|
|