androidwatcher
① 2款安卓漫畫閱讀器橫評:漫畫閱讀軟體哪個好用
或搞笑、或熱血、或諷刺、或治癒漫畫細膩而誇張筆觸描繪出了同於現實精彩世界即使長大成人事業繁忙多人對漫畫熱愛依舊減當年
當漫畫閱讀方式也隨著科技發展而發生了巨大改變由原來印刷冊搬了電腦上現又進入了手機由於屏幕限制手機上直接打開圖片漫畫比較費力時款優秀漫畫閱讀軟體必少了目前市場呼聲高兩款漫畫閱讀軟體ComicRack和Manga
Watcher兩款哪更好用下面小編從多方面進行點評
1.ComicRack
簡介:ComicRack套專業漫畫迷所設計免費漫畫瀏覽及管理軟體軟體支持TAR、RAR、PDF、ZIP等格式支持局部放大頁面亮度、飽和度和對比度設置拖拽改變順序等還建立屬於自己漫畫資料庫手邊漫畫書分門別類甚至依照集數去編排
2.MangaWatcher
簡介:漫畫閱讀器Manga
Watcher讓手機上閱讀喜愛漫畫
下頁更精彩
② android怎麼獲取listview上內容
解決方案:重寫BaseAdapter,然後自行獲取ListView中每行輸入的EditText值.
大概演算法:重寫BaseAdapter.getView函數,用一個數組存儲EditText中的值,根據position即數組下標,在getView中動態更新EditText和動態獲取EditText中的值.因為ListView中的item是復用的,如果不動態清空或動態獲取EditText中值,就會出現數據紊亂,或者沒數據.那麼在生成EditText的時候要監控其值的變化.存儲下來.
舉例代碼:
package com.exmyth.android;
public class ListEditorAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<Map<String, Object>> mData;// 存儲的EditText值
public Map<String, String> editorValue = new HashMap<String, String>();//
public ListEditorAdapter(Context context, List<Map<String, Object>> data) {
mData = data;
mInflater = LayoutInflater.from(context);
init();
}
// 初始化
private void init() {
editorValue.clear();
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
private Integer index = -1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// convertView為null的時候初始化convertView。
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview_item, null);
holder.name = (TextView) convertView
.findViewById(R.id.list_item_name);
holder.title = (TextView) convertView
.findViewById(R.id.list_item_title);
holder.value = (EditText) convertView
.findViewById(R.id.list_item_inputvalue);
holder.value.setTag(position);
holder.userkey = (TextView) convertView.findViewById(R.id.user_key);
holder.value.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
index = (Integer) v.getTag();
}
return false;
}
});
class MyTextWatcher implements TextWatcher {
public MyTextWatcher(ViewHolder holder) {
mHolder = holder;
}
private ViewHolder mHolder;
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (s != null && !"".equals(s.toString())) {
int position = (Integer) mHolder.value.getTag();
mData.get(position).put("list_item_inputvalue",
s.toString());// 當EditText數據發生改變的時候存到data變數中
}
}
}
holder.value.addTextChangedListener(new MyTextWatcher(holder));
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
holder.value.setTag(position);
}
Object value = mData.get(position).get("list_item_name");
if (value != null) {
holder.name.setText((String) value);
}
value = mData.get(position).get("list_item_title");
if (value != null) {
holder.title.setText(value.toString());
}
value = mData.get(position).get("user_key");
if (value != null) {
holder.userkey.setText(value.toString());
} else {
holder.userkey.setText("-1");
}
value = mData.get(position).get("list_item_inputvalue");
if (value != null && !"".equals(value)) {
holder.value.setText(value.toString());
} else {
String key = mData.get(position).get("user_key").toString();
String inputValue = editorValue.get(key);
holder.value.setText(inputValue);
}
holder.value.clearFocus();
if (index != -1 && index == position) {
holder.value.requestFocus();
}
return convertView;
}
public final class ViewHolder {
public TextView name;
public TextView title;
public EditText value;// ListView中的輸入
public TextView userkey;// 用來定義的標志性主鍵,可不用關心
}
}
③ Android開發 我想設置edittext 輸入完成後在調用監聽方法 這個怎麼實現
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {//在輸入數據時監聽
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,//輸入數據之前的監聽
int after) {
}
@Override
public void afterTextChanged(Editable s) {//輸入數據之後監聽
}
}
}
你還以在afterTextChanged(Editable s){ }中 同handler去延遲幾秒 就可以了