如何在java代碼中控制edittext不可編輯呢,因為edittext沒有seteditable這樣的方法,這個問題壇子裡已經有很多高手解決了,使用 inputfilter
具體如下:
java代碼
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3d3dvw1LcpDc0RHaiojIsJye.png)
你的edittext.setfilters(new inputfilter[] {
new inputfilter() {
public charsequence filter(charsequence source, int start,
int end, spanned dest, int dstart, int dend) {
return source.length() < 1 ? dest.subsequence(dstart, dend) : "";
}
}
});
(申明下,這個我是在壇子中看到的,本人測試有效) 這樣做就可以在java代碼中動态設定edittext的編輯狀态了,但這個無法解決使用者體驗的問題,軟鍵盤依然會打開,但無法輸入,但可以選擇内容。
通過這樣方式試試吧,自定義一個類繼承edittext
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3d3dvw1LcpDc0RHaiojIsJye.png)
package custom.widget;
import android.content.context;
import android.util.attributeset;
import android.view.motionevent;
import android.widget.edittext;
public class customedittext extends edittext {
public customedittext(context context,attributeset attrs) {
super(context,attrs);
}
@override
public boolean ontouchevent(motionevent event) {
// todo auto-generated method stub
return true;
}
}
//然後在頁面布局檔案使用自定義的edittext
<custom.widget.customedittext
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>