gprinter佳博打印机androidSDK
最近在用佳博的SDK做打印的功能,由于一直做的是.net,沒有android的基礎,這個功能我做了一個多月,包括前期調研佳博打印機的打印方式。佳博打印機有兩種打印方式,一種是標簽打印,要用到TscCommand這個接口;另外一種是票據打印,要用到EscCommand這個接口。由于沒有android基礎,不知道更新UI是需要放在UI線程里面,不能放在其他線程里面。這個問題我也弄了好久。不過現在已經解決了。這是更新UI的代碼,以便以后方便查找。
// 構建Runnable對象,在runnable中更新界面
Runnable runnableUi = new Runnable() {
@Override
public void run() {
// 更新界面
GridView gview = (GridView) findViewById(R.id.gview);
ListView lview = (ListView) findViewById(R.id.lview);
TextView pchecked = (TextView) findViewById(R.id.p10);
TextView ptemperature = (TextView) findViewById(R.id.p9);
LinearLayout playout = (LinearLayout) findViewById(R.id.temperaturelayout);
CheckBox ck = (CheckBox) findViewById(R.id.pchecked);
Button btnspot = (Button) findViewById(R.id.btnspotmit); // 現貨庫
Button btnreceipt = (Button) findViewById(R.id.btnreceiptmit); // 補簽收
Button btndelivery = (Button) findViewById(R.id.btndelivery); // 送貨聯
Button btnsubmit = (Button) findViewById(R.id.btnpsubmit);// 提交送貨聯
pchecked.setVisibility(TextView.GONE);
ptemperature.setVisibility(TextView.GONE);
playout.setVisibility(LinearLayout.GONE);
ck.setVisibility(CheckBox.GONE);
btndelivery.setVisibility(Button.GONE);
btnspot.setVisibility(Button.GONE);
btnreceipt.setVisibility(Button.GONE);
btnsubmit.setVisibility(Button.VISIBLE);
gview.setVisibility(GridView.GONE);
lview.setVisibility(ListView.VISIBLE);
SimpleAdapter adapter = new SimpleAdapter(PurchaseActivity.this,
maps, R.layout.listviewsource, new String[] { "pid",
"pcode", "punit" }, new int[] { R.id.p000,
R.id.p001, R.id.p003 });
lview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
};
首先要在OnCreate方法里面聲明一個專門用于更新UI的handler
Handler h=new Handler();
然后在需要用到的地方調用一下:
h.post(runnableUi);
我這邊是在加入送貨聯的時候用到的這個:
// 加入送貨聯
btndelivery.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try {
new Thread() {
public void run() {
clearCheck();
for (int i = 0; i < gv.getChildCount(); i++) {
View view = gv.getChildAt(i);
CheckBox checkBox = (CheckBox) ((ViewGroup) view)
.getChildAt(10);
if (checkBox.isChecked()) {
TextView pushid = (TextView) view
.findViewById(R.id.p00);
txtid = pushid.getText().toString();
Log.i("訂單號", txtid);
ordlist.add(txtid);
strordid += txtid + ",";
}
}
if (ordlist.size() > 0) {
saveCheck("orderid", strordid);// 將選取的訂單ID放入緩存中
InitLview();
h.post(runnableUi);
} else {
error_msg = "您還沒有選取數據";
alertHandler.sendEmptyMessage(0);
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
?
最后貼上gprinter Android SDK:
http://pan.baidu.com/s/1bpjhD9t 這個是1.1版本的
http://pan.baidu.com/s/1hsIjybM 這個是2.1版本的
轉載于:https://www.cnblogs.com/xiuselaoli/p/7728215.html
總結
以上是生活随笔為你收集整理的gprinter佳博打印机androidSDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA高级开发工程师面试系列——Roc
- 下一篇: arraylist java 排序_Ja