我正在为AutoCompleteTextView选择文本。我希望将setonclicklistener应用于所选文本。如果有任何想法。
ArrayAdapter<String> arrAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, sampleACTV);
AutoCompleteTextView ACTV = (AutoCompleteTextView) findViewById(R.id.spinner);
ACTV.setAdapter(arrAdapter);
}
private static final String[] sampleACTV = new String[]
{ "android","androidpeople.com","iphone","blackberry" };
在我的示例中,我选择了一个像android
调用意图去嵌套Acitivity
答案 0 :(得分:57)
AutoCompleteTextView中有不同的点击侦听器。
第一种方法是在布局xml中,你可以定义onCLick属性,使用你想要调用的函数,在下面的例子中,单击。
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="clicked" />
然后,在您的活动中,您定义单击的功能。
public void clicked(View v) {
// on click do ..
}
或者您可以直接在代码中设置它:
ACTV.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
如果要在用户单击下拉列表中的项目时设置单击侦听器,则还有另一种方法 setOnItemClickListener 。
ACTV.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
//... your stuff
}
})
当用户使用 setOnItemSelectedListener 实际选择下拉列表中的项目时,您有最后一个选项来设置点击侦听器。
ACTV.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
//... your stuff
}
@Override
public void onNothingSelected (AdapterView<?> parent) {
//... your stuff
}
})
参考文献:
http://developer.android.com/reference/android/widget/AutoCompleteTextView.html
祝你好运!答案 1 :(得分:2)
您需要创建自定义适配器并将OnClick事件分配给getView()中的视图
答案 2 :(得分:0)
这对我来说很完美
Actvl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected (AdapterView<?> parent, View view, int position, long id) {
//... your stuff
}
@Override
public void onNothingSelected (AdapterView<?> parent) {
//... your stuff
}
});
答案 3 :(得分:0)
创建一个自定义适配器,并在该 getView() 方法中放置 setonclicklistenerforeach 视图并调用接口方法。
覆盖片段中的接口并将其传递给适配器,以便点击您将获得片段中的点击。
// Via sprintf
// Good compilers will emit efficient code
// and not perform the usual parsing overhead of *printf format at run time
char *concatStrings_alt1(const char *arg1, const char *arg2) {
char *ret = malloc(strlen(arg1) + strlen(arg2) + 1);
sprintf(ret, "%s%s", arg1, arg2);
return ret;
}
// Via memcpy
char *concatStrings_alt2(const char *arg1, const char *arg2) {
size_t len1 = strlen(arg1);
size_t size2 = strlen(arg2) + 1;
char *ret = malloc(len1 + size2);
memcpy(ret, arg1, len1);
memcpy(ret + len1, arg2, size2);
return ret;
}
这将在每种情况下都能如您所愿。
如果您有任何建议,请告诉我,谢谢。