安卓Netserver安卓是什么意思

[Android][Error] ADB server 無法連接 - 打雜記事- 點部落
It's WORK !
to 螃蟹泡泡 :
是因為現實的殘酷,讓你無法接受也得接受嗎?
by 逆來順受
加油 但公司往往不是你想像中的那樣
我在全球五百大企業上班
但 ... 還是跟我想的....
by 螃蟹泡泡
遵照您上面的方法都使用過了,工作管理員沒有出現adb的東西,也是用cmd下去跑一遍~還是出現這個
by 還是無法使用呢?
直接從工作管理員刪掉adb.exe不就得了你打這麼多字幹嘛
i love you
MVC本來就是分離的設計,個人想怎麼跑開發流程都可以。
例如,M--&C--&V....
by KKBruce
通常會是分攜出系統中會使用到資料類別有哪些,然後進行 Model 的建立,看是用 Code Firs....
很有用,幫了我個大忙。
感謝分享連結
閱讀數 : 31259
最近在Eclipse 用Java上開發 Android 程式,而要執行程式的時候,出現
The connection to adb is down, and a severe error has occured.
You must restart adb and Eclipse.
Please ensure that adb is correctly located at "sdk\platform-tools\" and can be executed.
解決方法如下:
1.關閉 Eclipse ,如果你有開啟的話。
2.開啟命令提示字元(cmd)
3.設定當前目錄路徑為你的Android SDK的目錄下有個platform-tools資料夾
4.假設我的資料夾路徑為C:\android sdk\platform-tools\ ,則指令輸入cd C:\android sdk\platform-tools\
5.輸入adb kill-server
6.在輸入adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
則表示成功,若看到
* daemon not running. starting it now *
ADB server didn't ACK
* failed to start daemon *
則可以開啟工作管理員查看是否有處理程序是adb.exe的,把這個處理程序關閉即可,
若沒有adb.exe這個處理程序的話,建議直接重開機,這樣也能關閉ADB server程序。
重開機後,在將上面的步驟做一遍,就可以看到成功訊息,之後開心使用Eclipse唄。
&re: [Android][Error] ADB server 無法連接 by
&re: [Android][Error] ADB server 無法連接 by
ADB server didn't ACK
* failed to start daemon *
即使重開機也是!
下午 05:00 |
&re: [Android][Error] ADB server 無法連接 by
Email(將不會被顯示)86688人阅读
& & & & 本文为原创,如果转载请注明出处&
其实之前发过一篇这样的博文,但那个只是简单记录了一些自己的想法,并没有想作为教程来看,后来由于一些朋友想要源代码,就附上了下载地址,但并没有做什么讲解,从现在开始,准备做一份详细的Android如何连接Sqlserver的教程.由于本人才疏学浅,如果有什么不对的地方欢迎大家批评指正.
& & & &&为了避免再次被说标题党,这里先说明些事情:
& & & & 第一,android没法直接连接SQLServer,起码我没有发现方法,想想看,sqlserver安装之后有多大,android程序是跑在手机上的,想让程序直接访问sqlserver,那手机要多大的内存?
& & & & 第二,本文是通过一个“桥梁”——webservice来间接访问SQLServer的,当然还有其他方法,感兴趣的同学可以自行百度。
& & & & 如果理解了上面两点,好了咱们继续。
&&&&&&&& 教程会拿一个具体的例子来讲,一步一步来,也许细节上还可以继续加工,但大致的流程就是这样的。
&&&&&&&& 本教程有五个部分:
项目说明开发环境部署数据库设计服务器端程序设计客户端(android端)程序设计
&&&&&&&& 这个项目意在实现一个简单的android连接Sqlserver的功能。
&&&&&&&& 就做一个简单的库存管理功能,包括对仓库内现有货物的查看、货物信息的增加&删除。
开发环境的部署
&&&&&&&& 今天主要讲解第一个部分,开发环境的部署.
操作系统:Windows764bit 旗舰版
&&&&&&&& 当然这个是什么基本无所谓,只是我是在这上面开发的,不过家庭普通版的貌似不能配置IIS,就是咱们后面要使用的一个服务.
android端:eclipse + ADT集成开发环境
&&&&&&&& 相信看到这个教程的基本都知道如何做这些了.如果真的是有哪位同学android开发环境没有配置好而来看这篇教程,请先移步-&
服务器端:VisualStudio 2010
&&&&&&&& 这个是用来写website/webservice的,开发语言使用C# (即.net)
数据库:SQLServer2008 R2
&&&&&&&& 其实这个是什么版本也无所谓吧,教程使用的都是比较基本的东西,所以版本的差异基本可以忽略。
IIS 7.5:正确配置并开启IIS服务
&&&&&&&& 如果想将website/webservice发布出去就要开启这个服务。但是如果仅仅是在本地进行测试就不需要配置,直接在VS中运行就可以。
&&&&&&&& 其实我在开发的时候也只是配置IIS的时候遇到了一些问题,这里给出IIS的配置方法.
&&&&&&&& 这篇文库给的还是很详细的,我当初就是照着这个配置的。
数据库设计
数据库名称:StockManage
主键,自增
下图是设计表的时候的截图。
向表中输入内容
吐槽一下:为什么这里猫、狗、电话都有,甚至还有Surface?!这只能说当时LZ在想这些……
服务器端程序设计(Webservice)
&&&&&&&& 其实服务端可以写成webservice也可以写成website,前者只是提供一种服务,而后者是可以提供用户界面等具体的页面,后者也就是咱们平时所说的“网站”。
&&&&&&&& 两者的区别:
Web Service 只提供程序和接口,不提供用户界面Web Site 提供程序和接口,也提供用户界面(网页)
&&&&&&&& 由于咱们只是需要一个中介来访问sqlserver,所以写成webservice足够了。
&&&&&&&& 目标:写一个Website访问Sqlserver,获取数据并转换成xml格式,然后传递给android客户端。
1.&&&&&&新建一个Webservice工程
2.&&&&&&视图 -&&其它窗口 -& 服务器资源管理器
3.&&&&&&右键数据连接 -& 添加连接
4.&&&&&&选择Microsoft Sqlserver
5.&&&&&&如下图所示选择(可以点击测试连接来检测连接是否成功,然后点击确定)
6.&&&&&&数据库的查看和编辑也可以在VS中进行了
7.&&&&&&先查看一下数据库属性并记录下连接属性
8.&&&&&&新建一个类DBOperation,代码如下:
using System.D
using System.C
using System.L
using System.W
using System.Web.S
using System.Web.UI;
using System.Web.UI.HtmlC
using System.Web.UI.WebC
using System.Web.UI.WebControls.WebP
using System.Xml.L
using System.Data.SqlC
using System.Text.RegularE
using System.C
using System.Collections.G
namespace StockManageWebservice
/// &summary&
/// 一个操作数据库的类,所有对SQLServer的操作都写在这个类中,使用的时候实例化一个然后直接调用就可以
/// &/summary&
public class DBOperation:IDisposable
public static SqlConnection sqlC
//用于连接数据库
//将下面的引号之间的内容换成上面记录下的属性中的连接字符串
private String ConServerStr = @&Data Source=BOTTLE-PC;Initial Catalog=StockMIntegrated Security=True&;
//默认构造函数
public DBOperation()
if (sqlCon == null)
sqlCon = new SqlConnection();
sqlCon.ConnectionString = ConServerS
sqlCon.Open();
//关闭/销毁函数,相当于Close()
public void Dispose()
if (sqlCon != null)
sqlCon.Close();
/// &summary&
/// 获取所有货物的信息
/// &/summary&
/// &returns&所有货物信息&/returns&
public List&string& selectAllCargoInfor()
List&string& list = new List&string&();
string sql = &select * from C&;
SqlCommand cmd = new SqlCommand(sql,sqlCon);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
//将结果集信息添加到返回向量中
list.Add(reader[0].ToString());
list.Add(reader[1].ToString());
list.Add(reader[2].ToString());
reader.Close();
cmd.Dispose();
catch(Exception)
/// &summary&
/// 增加一条货物信息
/// &/summary&
/// &param name=&Cname&&货物名称&/param&
/// &param name=&Cnum&&货物数量&/param&
public bool insertCargoInfo(string Cname, int Cnum)
string sql = &insert into C (Cname,Cnum) values ('& + Cname + &',& + Cnum + &)&;
SqlCommand cmd = new SqlCommand(sql, sqlCon);
cmd.ExecuteNonQuery();
cmd.Dispose();
catch (Exception)
/// &summary&
/// 删除一条货物信息
/// &/summary&
/// &param name=&Cno&&货物编号&/param&
public bool deleteCargoInfo(string Cno)
string sql = &delete from C where Cno=& + C
SqlCommand cmd = new SqlCommand(sql, sqlCon);
cmd.ExecuteNonQuery();
cmd.Dispose();
catch (Exception)
9.& & & 修改Service1.asmx.cs代码如下:
using System.Collections.G
using System.L
using System.W
using System.Web.S
namespace StockManageWebservice
/// &summary&
/// Service1 的摘要说明
/// &/summary&
[WebService(Namespace = &http://tempuri.org/&)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
DBOperation dbOperation = new DBOperation();
[WebMethod]
public string HelloWorld()
return &Hello World&;
[WebMethod(Description = &获取所有货物的信息&)]
public string[] selectAllCargoInfor()
return dbOperation.selectAllCargoInfor().ToArray();
[WebMethod(Description = &增加一条货物信息&)]
public bool insertCargoInfo(string Cname, int Cnum)
return dbOperation.insertCargoInfo(Cname, Cnum);
[WebMethod(Description = &删除一条货物信息&)]
public bool deleteCargoInfo(string Cno)
return dbOperation.deleteCargoInfo(Cno);
10.&&&&&&运行程序(F5),会自动打开一个浏览器,可以看到如下画面:
11.&&选择相应的功能并传递参数可以实现调试从浏览器中调试程序:
下图选择的是增加一条货物信息
12. &程序执行的结果:
13.另,记住这里的端口名,后面android的程序中添入的端口号就是这个:
客户端(android端)程序设计
1.MainActivity
package com.bottle.
import java.util.ArrayL
import java.util.HashM
import java.util.L
import android.app.A
import android.app.D
import android.os.B
import android.view.G
import android.view.V
import android.view.View.OnClickL
import android.view.W
import android.view.WindowM
import android.widget.B
import android.widget.EditT
import android.widget.ListV
import android.widget.SimpleA
import android.widget.T
public class MainActivity extends Activity{
private Button btn1;
private Button btn2;
private Button btn3;
private ListView listV
private SimpleA
private DBUtil dbU
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn_all);
btn2 = (Button) findViewById(R.id.btn_add);
btn3 = (Button) findViewById(R.id.btn_delete);
listView = (ListView) findViewById(R.id.listView);
dbUtil = new DBUtil();
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
hideButton(true);
setListView();
btn2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
hideButton(true);
setAddDialog();
btn3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
hideButton(true);
setDeleteDialog();
* 设置弹出删除对话框
private void setDeleteDialog() {
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog_delete);
dialog.setTitle(&输入想要删除的货物的编号&);
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
dialogWindow.setAttributes(lp);
final EditText cNoEditText = (EditText) dialog.findViewById(R.id.editText1);
Button btnConfirm = (Button) dialog.findViewById(R.id.button1);
Button btnCancel = (Button) dialog.findViewById(R.id.button2);
btnConfirm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dbUtil.deleteCargoInfo(cNoEditText.getText().toString());
dialog.dismiss();
hideButton(false);
Toast.makeText(MainActivity.this, &成功删除数据&, Toast.LENGTH_SHORT).show();
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
hideButton(false);
dialog.show();
* 设置弹出添加对话框
private void setAddDialog() {
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog_add);
dialog.setTitle(&输入添加的货物的信息&);
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
dialogWindow.setAttributes(lp);
final EditText cNameEditText = (EditText) dialog.findViewById(R.id.editText1);
final EditText cNumEditText = (EditText) dialog.findViewById(R.id.editText2);
Button btnConfirm = (Button) dialog.findViewById(R.id.button1);
Button btnCancel = (Button) dialog.findViewById(R.id.button2);
btnConfirm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dbUtil.insertCargoInfo(cNameEditText.getText().toString(), cNumEditText.getText().toString());
dialog.dismiss();
hideButton(false);
Toast.makeText(MainActivity.this, &成功添加数据&, Toast.LENGTH_SHORT).show();
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
hideButton(false);
dialog.show();
* 设置listView
private void setListView() {
listView.setVisibility(View.VISIBLE);
List&HashMap&String, String&& list = new ArrayList&HashMap&String, String&&();
list = dbUtil.getAllInfo();
adapter = new SimpleAdapter(
MainActivity.this,
R.layout.adapter_item,
new String[] { &Cno&, &Cname&, &Cnum& },
new int[] { R.id.txt_Cno, R.id.txt_Cname, R.id.txt_Cnum });
listView.setAdapter(adapter);
* 设置button的可见性
private void hideButton(boolean result) {
if (result) {
btn1.setVisibility(View.GONE);
btn2.setVisibility(View.GONE);
btn3.setVisibility(View.GONE);
btn1.setVisibility(View.VISIBLE);
btn2.setVisibility(View.VISIBLE);
btn3.setVisibility(View.VISIBLE);
* 返回按钮的重写
public void onBackPressed()
if (listView.getVisibility() == View.VISIBLE) {
listView.setVisibility(View.GONE);
hideButton(false);
MainActivity.this.finish();
2.HttpConnSoap
(改类已经过时,更多请参照
package com.bottle.
import java.io.IOE
import java.io.InputS
import java.io.OutputS
import java.net.HttpURLC
import java.net.URL;
import java.util.ArrayL
public class HttpConnSoap {
public ArrayList&String& GetWebServre(String methodName, ArrayList&String& Parameters, ArrayList&String& ParValues) {
ArrayList&String& Values = new ArrayList&String&();
//ServerUrl是指webservice的url
//10.0.2.2是让android模拟器访问本地(PC)服务器,不能写成127.0.0.1
//11125是指端口号,即挂载到IIS上的时候开启的端口
//Service1.asmx是指提供服务的页面
String ServerUrl = &http://10.0.2.2:11125/Service1.asmx&;
//String soapAction=&http://tempuri.org/LongUserId1&;
String soapAction = &http://tempuri.org/& + methodN
//String data = &&;
String soap = &&?xml version=\&1.0\& encoding=\&utf-8\&?&&
+ &&soap:Envelope xmlns:xsi=\&http://www.w3.org/2001/XMLSchema-instance\& xmlns:xsd=\&http://www.w3.org/2001/XMLSchema\& xmlns:soap=\&http://schemas.xmlsoap.org/soap/envelope/\&&&
+ &&soap:Body /&&;
String tps, vps,
String mreakString = &&;
mreakString = &&& + methodName + & xmlns=\&http://tempuri.org/\&&&;
for (int i = 0; i & Parameters.size(); i++) {
tps = Parameters.get(i).toString();
//设置该方法的参数为.net webService中的参数名称
vps = ParValues.get(i).toString();
ts = &&& + tps + &&& + vps + &&/& + tps + &&&;
mreakString = mreakString +
mreakString = mreakString + &&/& + methodName + &&&;
+&&HelloWorld xmlns=\&http://tempuri.org/\&&&
+&&x&string11661&/x&&
+&&SF1&string111&/SF1&&
+ &&/HelloWorld&&
String soap2 = &&/soap:Envelope&&;
String requestData = soap + mreakString + soap2;
//System.out.println(requestData);
URL url = new URL(ServerUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
byte[] bytes = requestData.getBytes(&utf-8&);
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setConnectTimeout(6000);// 设置超时时间
con.setRequestMethod(&POST&);
con.setRequestProperty(&Content-Type&, &text/charset=utf-8&);
con.setRequestProperty(&SOAPAction&, soapAction);
con.setRequestProperty(&Content-Length&, && + bytes.length);
OutputStream outStream = con.getOutputStream();
outStream.write(bytes);
outStream.flush();
outStream.close();
InputStream inStream = con.getInputStream();
//data=parser(inStream);
//System.out.print(&11&);
Values = inputStreamtovaluelist(inStream, methodName);
//System.out.println(Values.size());
} catch (Exception e) {
System.out.print(&2221&);
public ArrayList&String& inputStreamtovaluelist(InputStream in, String MonthsName) throws IOException {
StringBuffer out = new StringBuffer();
String s1 = &&;
byte[] b = new byte[4096];
ArrayList&String& Values = new ArrayList&String&();
Values.clear();
for ( (n = in.read(b)) != -1;) {
s1 = new String(b, 0, n);
out.append(s1);
System.out.println(out);
String[] s13 = s1.split(&&&&);
String ifString = MonthsName + &Result&;
String TS = &&;
String vs = &&;
Boolean getValueBoolean =
for (int i = 0; i & s13. i++) {
TS = s13[i];
System.out.println(TS);
j = TS.indexOf(ifString);
k = TS.lastIndexOf(ifString);
if (j &= 0) {
System.out.println(j);
if (getValueBoolean == false) {
getValueBoolean =
if ((j &= 0) && (k & j)) {
System.out.println(&FFF& + TS.lastIndexOf(&/& + ifString));
//System.out.println(TS);
l = ifString.length() + 1;
vs = TS.substring(j + l, k - 2);
//System.out.println(&fff&+vs);
Values.add(vs);
System.out.println(&退出& + vs);
getValueBoolean =
if (TS.lastIndexOf(&/& + ifString) &= 0) {
getValueBoolean =
if ((getValueBoolean) && (TS.lastIndexOf(&/& + ifString) & 0) && (j & 0)) {
k = TS.length();
//System.out.println(TS);
vs = TS.substring(7, k - 8);
//System.out.println(&f&+vs);
Values.add(vs);
package com.bottle.
import java.sql.C
import java.util.ArrayL
import java.util.HashM
import java.util.L
public class DBUtil {
private ArrayList&String& arrayList = new ArrayList&String&();
private ArrayList&String& brrayList = new ArrayList&String&();
private ArrayList&String& crrayList = new ArrayList&String&();
private HttpConnSoap Soap = new HttpConnSoap();
public static Connection getConnection() {
Connection con =
//Class.forName(&org.gjt.mm.mysql.Driver&);
//con=DriverManager.getConnection(&jdbc:mysql://192.168.0.106:3306/test?useUnicode=true&characterEncoding=UTF-8&,&root&,&initial&);
} catch (Exception e) {
//e.printStackTrace();
* 获取所有货物的信息
public List&HashMap&String, String&& getAllInfo() {
List&HashMap&String, String&& list = new ArrayList&HashMap&String, String&&();
arrayList.clear();
brrayList.clear();
crrayList.clear();
crrayList = Soap.GetWebServre(&selectAllCargoInfor&, arrayList, brrayList);
HashMap&String, String& tempHash = new HashMap&String, String&();
tempHash.put(&Cno&, &Cno&);
tempHash.put(&Cname&, &Cname&);
tempHash.put(&Cnum&, &Cnum&);
list.add(tempHash);
for (int j = 0; j & crrayList.size(); j += 3) {
HashMap&String, String& hashMap = new HashMap&String, String&();
hashMap.put(&Cno&, crrayList.get(j));
hashMap.put(&Cname&, crrayList.get(j + 1));
hashMap.put(&Cnum&, crrayList.get(j + 2));
list.add(hashMap);
* 增加一条货物信息
public void insertCargoInfo(String Cname, String Cnum) {
arrayList.clear();
brrayList.clear();
arrayList.add(&Cname&);
arrayList.add(&Cnum&);
brrayList.add(Cname);
brrayList.add(Cnum);
Soap.GetWebServre(&insertCargoInfo&, arrayList, brrayList);
* 删除一条货物信息
public void deleteCargoInfo(String Cno) {
arrayList.clear();
brrayList.clear();
arrayList.add(&Cno&);
brrayList.add(Cno);
Soap.GetWebServre(&deleteCargoInfo&, arrayList, brrayList);
4.activity_main.xml
&RelativeLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& &
android:id=&@+id/listView&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:visibility=&gone& &
&/ListView&
android:id=&@+id/btn_all&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_above=&@+id/btn_add&
android:layout_alignLeft=&@+id/btn_add&
android:layout_marginBottom=&10dip&
android:text=&@string/btn1& /&
android:id=&@+id/btn_add&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_centerHorizontal=&true&
android:layout_centerVertical=&true&
android:text=&@string/btn2& /&
android:id=&@+id/btn_delete&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_alignLeft=&@+id/btn_add&
android:layout_below=&@+id/btn_add&
android:layout_marginTop=&10dip&
android:text=&@string/btn3& /&
&/RelativeLayout&
5.adapter_item.xml
&?xml version=&1.0& encoding=&utf-8&?&
&TableLayout xmlns:android=&/apk/res/android&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:descendantFocusability=&blocksDescendants&
android:gravity=&center& &
android:id=&@+id/classroom_detail_item_tableRow&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:gravity=&center& &
android:id=&@+id/txt_Cno&
android:layout_width=&80dp&
android:layout_height=&wrap_content&
android:gravity=&center&
android:height=&40dp&
android:textSize=&14sp& &
&/TextView&
android:id=&@+id/txt_Cname&
android:layout_width=&80dp&
android:layout_height=&wrap_content&
android:gravity=&center&
android:height=&40dp&
android:textSize=&14sp& &
&/TextView&
android:id=&@+id/txt_Cnum&
android:layout_width=&80dp&
android:layout_height=&wrap_content&
android:gravity=&center&
android:height=&40dp&
android:textSize=&14sp& &
&/TextView&
&/TableRow&
&/TableLayout&
6.dialog_add.xml
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:orientation=&vertical& &
android:id=&@+id/editText1&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:ems=&10&
android:hint=&@string/add_hint1& &
&requestFocus /&
&/EditText&
android:id=&@+id/editText2&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:ems=&10&
android:hint=&@string/add_hint2&
android:inputType=&number& /&
&LinearLayout
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:orientation=&horizontal& &
android:id=&@+id/button1&
android:layout_width=&100dip&
android:layout_height=&wrap_content&
android:layout_marginLeft=&20dip&
android:text=&@string/confirm& /&
android:id=&@+id/button2&
android:layout_width=&100dip&
android:layout_height=&wrap_content&
android:layout_marginLeft=&40dip&
android:text=&@string/cancel& /&
&/LinearLayout&
&/LinearLayout&
7.dialog_delete.xml
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:orientation=&vertical& &
android:id=&@+id/editText1&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:ems=&10&
android:hint=&@string/delete_hint& &
&requestFocus /&
&/EditText&
&LinearLayout
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:orientation=&horizontal& &
android:id=&@+id/button1&
android:layout_width=&100dip&
android:layout_height=&wrap_content&
android:layout_marginLeft=&20dip&
android:text=&@string/confirm& /&
android:id=&@+id/button2&
android:layout_width=&100dip&
android:layout_height=&wrap_content&
android:layout_marginLeft=&40dip&
android:text=&@string/cancel& /&
&/LinearLayout&
&/LinearLayout&
8.strings.xml
&resources&
&string name=&app_name&&StockManagement&/string&
&string name=&menu_settings&&Settings&/string&
&string name=&title_activity_main&&MainActivity&/string&
&string name=&btn1&&查看所有货物信息&/string&
&string name=&btn2&&增加一条货物信息&/string&
&string name=&btn3&&删除一条货物信息&/string&
&string name=&add_hint1&&输入添加的货物的名称&/string&
&string name=&add_hint2&&输入货物的数量&/string&
&string name=&confirm&&确定&/string&
&string name=&cancel&&取消&/string&
&string name=&delete_hint&&输入删除的货物的编号&/string&
&/resources&
9.Manifest.xml
&manifest xmlns:android=&/apk/res/android&
package=&com.bottle.stockmanage&
android:versionCode=&1&
android:versionName=&1.0& &
android:minSdkVersion=&7&
android:targetSdkVersion=&15& /&
&uses-permission android:name=&android.permission.INTERNET& /&
&application
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@android:style/Theme.NoTitleBar& &
android:name=&.MainActivity&
android:label=&@string/title_activity_main&
android:screenOrientation=&portrait& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&/application&
&/manifest&
运行程序的效果如下图所示:
再说一下IIS,如果只是在本地进行测试等操作,是不需要使用到IIS的,但是如果想发布出去,就要配置一下IIS。
好啦,基本就是这样了。程序不是完善的,但大概的思路就是这样,用到的技术也大概就是这几样,但是每一样拿出来都够学一阵的了。
---& 增加内容
附上本文demo的CSDN下载地址
---& 增加内容
解释一下android端如何和webservice通信的。(如何修改实例程序)
具体的更深层的东西已经在HttpSoap中封装好了,所以大家使用的时候可以直接用这个类就可以了。(我也不懂是怎么实现的……)
android调用的方法就是如DBUtil中那样,比如
其中arrayList中和brrayList中分别存放对应的webservice中“selectAllCargoInfor”方法的参数名和参数的值。
由于webservice中的selectAllCargoInfo方法的参数为空,所以对应的,android端调用的时候,arrayList和brrayList的值就是空的。
&所以大家在使用的时候,只需要将webservice中的方法写好,然后写好DBUtil中的调用参数即可。
---&2013.03.23 增加内容
如果获取值为空,可能是返回值是复杂类型造成的,可以参考:
---&2014.07.18 增加内容
没想到这么长时间了还能得到大家的青睐,很欣慰。
之前收到过一些同学发来的邮件,问题大概以下几种,这里统一答复一下吧,希望给有问题的同学一个参考。
0.Webservice无法正确执行(这个没什么说的,webservice有问题)
1.Webservice用本地的电脑可以访问,但是在手机浏览器中就无法得到正确的结果(Webservice配置问题,或者IIS配置问题)
2.Webservice用本地的电脑和手机浏览器都可以正确执行,但是程序一运行就崩溃
2.1 可能情况1 - 我的程序是用Android2.1写的,Android2.3以后有一个StrictMode的问题,如果有同学是用2.3以上版本做的,可能是这个问题,具体可以搜索一下StrictMode,然后修改一下程序即可,我在这里就不献丑了。
2.2 可能情况2 - 调试的时候是用的是模拟器,IP地址当时填写的是10.0.2.2,这个地址是PC相对于模拟器的IP地址,放到真机中就不行了,真机运行程序中要填写PC的IP地址(可以将手机和PC连接在同一个局域网中做测试,也可以将程序发布到服务器上,Android程序中填写服务器的IP地址和端口号)。
3.用模拟器调试怎么都可以,但放到真机上就不行。
3.1 可能情况1 - 模拟器的版本是2.3以下的,程序运行正常,可是真机是2.3以上的,解决方法参考2.1。
3.2 可能情况2 -&放到真机运行的时候没改程序的url,IP地址错误,解决方法参考2.2。
4.SQL语句错误、按钮监听错误等问题大家细心查查就行了。
不出什么意外的话,本文不会再更新了,楼主已经很久不搞Android了,有些东西也稍微有点生疏了。
以前有些同学给我发邮件或者私信我是每个都回复的,不管问的问题我自己会不会。工作了之后就比较忙了,而且Gmail经常上不去(你懂的),有些同学的邮件就没有回复,在此向那些我没有回复的同学说声抱歉,大家都是来交流的,我绝对不是高傲或者懒散,交个朋友也好。
大家不要问QQ号了,那个东西不太适合技术交流,还是邮箱来的实在,这能让彼此的思考时间多一些。
再次留下我的邮箱:bottle. 如果有什么问题,欢迎大家来信交流。
谢谢支持,欢迎大家批评指正。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:334309次
积分:4091
积分:4091
排名:第3346名
原创:88篇
评论:440条
(1)(3)(2)(1)(4)(1)(2)(1)(1)(2)(1)(1)(4)(1)(4)(3)(2)(3)(7)(16)(16)(8)(8)}

我要回帖

更多关于 安卓adt是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信