真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android表單,android表單校驗

android能根據(jù)json動態(tài)生成一個form表單嗎?

你是做web開發(fā)的吧?

十余年的廣昌網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整廣昌建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“廣昌網(wǎng)站設(shè)計”,“廣昌網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

問題要發(fā)到 電腦/網(wǎng)絡(luò)—軟件開發(fā)—移動開發(fā)下比較準(zhǔn)確。

android上是沒有form表單的概念的,通常用listView列表來顯示。

前幾天給別人寫了一個這樣的demo,如果有需要,可以留下郵箱發(fā)給你

android客戶端如何提交表單數(shù)據(jù)給web服務(wù)器

1.服務(wù)器端的準(zhǔn)備

為了完成該實例,我們需要在服務(wù)器端做以下準(zhǔn)備工作:

(1)我們需要在MyEclipse中創(chuàng)建一個Web工程,用來模擬服務(wù)器端的Web服務(wù),這里,我將該工程命名為了“myhttp”。

(2)修改該工程的“index.jsp”文件,添加兩個輸入框和一個提交按鈕,作為該Web工程的顯示頁面。運行Tomcat,在瀏覽器中訪問該Web工程,可以看到如圖1所示的界面。

Web工程的顯示頁面

(3)在該Web工程中,創(chuàng)建一個繼承自HttpServlet的LoginAction類,并實現(xiàn)其中的doPost()方法,用來響應(yīng)圖1所示頁面的用戶操作。具體實現(xiàn)如下:

由上述代碼可以看出,當(dāng)我們在圖1所示的頁面輸入用戶名“admin”,密碼“123”時,點擊提交按鈕,會得到“Login succeeded!”的提示信息,如圖2所示。若用戶名、密碼錯誤,則會得到“Login failed!”的提示信息。

2.客戶端實現(xiàn)

在Android客戶端,我們需要完成的工作是:以POST方式發(fā)送用戶名密碼到上述服務(wù)器,并獲得服務(wù)器的驗證信息。

我們分以下幾個步驟來完成。

2.1 UI界面

在Android工程中,我們需要完成一個簡單的UI界面,用來完成用戶名密碼的輸入、發(fā)送POST請求、顯示服務(wù)器的驗證結(jié)果,完成后的界面如圖3所示。

在MainActivity中,我們需要獲取兩個EditText控件的輸入,“提交”按鍵的監(jiān)聽,以及服務(wù)器驗證結(jié)果的TextView內(nèi)容顯示。具體實現(xiàn)代碼如下:

2.2發(fā)送POST請求到服務(wù)器

可以看到上述代碼中,我們調(diào)用了HttpUtils類的靜態(tài)方法submitPostData()完成了發(fā)送POST請求到服務(wù)器,并將該方法的返回值(服務(wù)器的響應(yīng)結(jié)果)顯示在了TextView控件中。

通過以上的代碼可以看出,在該方法中,其實完成了3件事:

(1)將用戶名密碼封裝成請求體,這是通過調(diào)用getRequestData()方法來實現(xiàn)的(后面會講到這個方法的具體實現(xiàn))。

(2)設(shè)置HttpURLConnection對象的各種參數(shù)(其實是設(shè)置HTTP協(xié)議請求體的各項參數(shù)),然后通過httpURLConnection.getOutputStream()方法獲得服務(wù)器輸出流outputStream,再使用outputStream.write()方法將請求體內(nèi)容發(fā)送給服務(wù)器。

(3)判斷服務(wù)器的響應(yīng)碼,通過httpURLConnection.getInputStream()方法獲得服務(wù)器的響應(yīng)輸入流,然后再調(diào)用dealResponseResult()方法處理服務(wù)器的響應(yīng)結(jié)果。

2.3封裝請求體

使用POST請求時,POST的參數(shù)不是放在URL字符串里,而是放在HTTP請求數(shù)據(jù)中,所以我們需要對POST的參數(shù)進行封裝。

針對該實例而言,我們發(fā)送的URL請求是:,但是我們需要將POST的參數(shù)(也就是username和password)封裝到該請求中,形成如下的形式:

2.4處理響應(yīng)結(jié)果

最后,我們再來看一看對服務(wù)器返回結(jié)果的處理是怎樣的。因為在本實例中,服務(wù)器的返回結(jié)果是字符串“Login succeeded!”或“Login failed!”,所以這里我們需要做的就是將服務(wù)器的返回結(jié)果輸入流轉(zhuǎn)化成字符串。當(dāng)然了,如果服務(wù)器返回的是圖片,那么,我們就需要就得到的輸入流轉(zhuǎn)化成Bitmap圖片了。如下代碼是上面代碼中用到的dealResponseResult()方法的具體實現(xiàn)。

2.5運行效果

android平板 怎么設(shè)計好看的表單

1.來說下主程序MainActivity.java

public class MainActivity extends Activity {

private TableLayout table;

private Button select;

EmployeeDao dao = new EmployeeDao(this);

private Button add;

private Button update;

int selectedRow = 0;

int ActivityID=1;

ListEmployee list = new ArrayListEmployee();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

table = (TableLayout) this.findViewById(R.id.table);

table.setBackgroundColor(Color.GREEN);

//table.set

add = (Button) this.findViewById(R.id.add);

update = (Button) this.findViewById(R.id.update);

select = (Button) this.findViewById(R.id.select);

// 點擊查詢按鈕處理事件

// Toast.makeText(this, "已查詢過了!", Toast.LENGTH_SHORT).show();

select.setOnClickListener(new selectListener());

// 點擊添加按鈕事件處理,跳轉(zhuǎn)到另一個activity

add.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent i = new Intent();

i.setClass(MainActivity.this, AddAndUpdateActivity.class);

Bundle bundle=new Bundle();

ActivityID=1;

bundle.putInt("ID", ActivityID);

i.putExtras(bundle);

startActivity(i);

}

});

// 更新員工信息

update.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent i = new Intent();

i.setClass(MainActivity.this, AddAndUpdateActivity.class);

Bundle bundle=new Bundle();

ActivityID=2;

bundle.putInt("ID", ActivityID);

bundle.putInt("emID", selectedRow);

i.putExtras(bundle);

startActivity(i);

}

});

}

// 查詢信息監(jiān)聽類

private class selectListener implements View.OnClickListener {

@Override

public void onClick(View v) {

list = dao.getAll();

if (list.size() != 0) {

for (int i = 0; i list.size(); i++) {

TableRow row = new TableRow(MainActivity.this);

Employee em = list.get(i);// 查找所有員工信息

// 設(shè)置行標(biāo)記

row.setId(em.getId());

row.setPadding(6, 1, 6, 1);

row.setGravity(Gravity.CENTER);

row.setBackgroundColor(Color.WHITE);

TextView view1 = new TextView(MainActivity.this);

view1.setText(Integer.toString(em.getId()));

view1.setGravity(Gravity.CENTER);//文本居中

view1.setTextSize((float) 18);文本大小

view1.setTextColor(Color.RED);

view1.setPadding(10, 2, 10, 2);//邊框左、上、右、下

row.addView(view1);添加一行

TextView view2 = new TextView(MainActivity.this);

view2.setText(em.getName());

view2.setTextSize((float) 18);

view2.setPadding(10, 2, 10, 2);

row.addView(view2);

TextView view3 = new TextView(MainActivity.this);

view3.setText(Integer.toString(em.getAge()));

view3.setTextSize((float) 18);

view3.setGravity(Gravity.CENTER);

view3.setPadding(10, 2, 10, 2);

row.addView(view3);

TextView view4 = new TextView(MainActivity.this);

view4.setText(em.getPosition());

view4.setTextSize((float) 18);

view4.setPadding(10, 2, 10, 2);

row.addView(view4);

TextView view5 = new TextView(MainActivity.this);

view5.setText(em.getDepartment());

view5.setTextSize((float) 18);

view5.setPadding(10, 2, 10, 2);

row.addView(view5);

TextView view6 = new TextView(MainActivity.this);

view6.setText(em.getWorkdate());

view6.setTextSize((float) 18);

view6.setPadding(10, 2, 10, 2);

row.addView(view6);

TextView view7 = new TextView(MainActivity.this);

SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");

Date date = null;

try {

date = format.parse(em.getWorkdate());

} catch (ParseException e) {

e.printStackTrace();

}

float d= (float)((new Date().getTime()-date.getTime())/(24*60*60*1000)/365);//計算工齡

String dd=Integer.toString((int) d+1);

view7.setText(dd);

view7.setTextSize((float) 18);

view7.setPadding(10, 2, 10, 2);

row.addView(view7);

table.addView(row);

row.setOnClickListener(new View.OnClickListener() {//點擊某行觸發(fā)事件

@Override

public void onClick(View v) {

System.out.println("行標(biāo)記:" + v.getId());

for (int i = 0; i table.getChildCount(); i++) {

if (table.getChildAt(i).getId() != v.getId())

table.getChildAt(i).setBackgroundColor(Color.WHITE);

// 選中時,高亮顯示即設(shè)置背景色

v.setBackgroundColor(Color.YELLOW);

}

selectedRow = v.getId();

AlertDialog.Builder dialog = new AlertDialog.Builder(

MainActivity.this);

dialog.setTitle("請確認(rèn):");

dialog.setMessage("是否刪除這條記錄?");

dialog.setPositiveButton("確定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(

DialogInterface dialog,int which) {

EmployeeDao dao = new EmployeeDao(MainActivity.this);

dao.delete(selectedRow);

Toast.makeText(MainActivity.this,

"刪除成功", Toast.LENGTH_SHORT).show();

Intent i = new Intent();

i.setClass(MainActivity.this,MainActivity.class);

startActivity(i);

}

});

dialog.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

dialog.cancel();

} });

dialog.show();

}

});

}

}

}

}

}

2.然后是添加和更新的界面,兩個功能使用同一個xml文件布局

RelativeLayout

android:background="#2691f2"

tools:context=".AddAndUpdateActivity"

TextView

android:id="@+id/t"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:textSize="25sp"

android:text="@string/addinfo"

android:textColor="#bc4b86" /

LinearLayout

android:layout_width="fill_parent"

android:layout_height="match_parent"

android:layout_below="@+id/t"

android:orientation="vertical"

TextView

android:layout_width="wrap_content"

android:layout_height="30dp" /

LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/name" /

EditText

android:id="@+id/nm"

android:inputType="text"

android:layout_width="150dp"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp" /

/LinearLayout

LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/age" /

EditText

android:id="@+id/ag"

android:inputType="text"

android:layout_width="150dp"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp" /

/LinearLayout

LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/position" /

EditText

android:id="@+id/pzs"

android:inputType="text"

android:layout_width="150dp"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp" /

/LinearLayout

LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/dptmt" /

EditText

android:id="@+id/dptmt"

android:inputType="text"

android:layout_width="150dp"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp" /

/LinearLayout

LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/date" /

EditText

android:id="@+id/wkdt"

android:inputType="text"

android:layout_width="150dp"

android:layout_height="wrap_content" /

/LinearLayout

TextView

android:layout_width="wrap_content"

android:layout_height="20dp" /

Button

android:id="@+id/addnew"

android:layout_width="60dp"

android:layout_height="40dp"

android:layout_gravity="center_horizontal"

android:text="@string/add"

/Button

/LinearLayout

/RelativeLayout


文章名稱:android表單,android表單校驗
文章源于:http://weahome.cn/article/dscopph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部