在这里我确实找到了相同的替代原生,诀窍有点冗长。但可能会为你工作。
第1步:像这样创建XML文件,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="150dp" >
<AutoCompleteTextView
android:id="@+id/autocomplete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true" />
<com.example.mydemo.TextScrolling
android:id="@+id/forHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/autocomplete"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/long_hint_string" />
</RelativeLayout>
步骤2:对于那些卷轴,我从here使用这个类TextScrolling自定义文本视图。
第3步: Java文件代码依赖于textwatcher和可见性显示和隐藏。
public class MainActivity extends Activity {
private static final String TAG = MainActivity.class.getName();
AutoCompleteTextView mAutoCompleteTextView;
TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mTextView = (TextView) findViewById(R.id.forHint);
mAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
mAutoCompleteTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
Log.e(TAG, "arg0 = " + arg0);
if(arg0.length()>0) {
mTextView.setVisibility(View.GONE);
} else {
mTextView.setVisibility(View.VISIBLE);
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
}
我也看过你的昨天的问题了。我也面临与选框相同的问题。也可能用EditText也无法实现。所以你可以告诉我你在这里想达到什么目的,这样我们可以找到替代方案。 – Chitrang 2014-09-27 07:39:54