如何解决如何捕获列表对话框结果-Android
| 我是Android新手。我被困住了,需要帮助。 我有一个清单作为我的Activity
。 a1ѭ对于列表的任何元素,我正在显示一个带有自定义列表(红色,绿色,蓝色)的对话框,并且在选择任何项目(红色,绿色,蓝色)时我需要更改所选项目的背景色(活动在其上引发对话框的)(列表)(主要活动)。
对话框弹出,但是我卡住了如何获取(对话框的)选定项。下面是我的代码。
public class SimpleList extends ListActivity
{
String[] contactNames = {\"Name 1\",\"Name 2\",\"Name 3\",\"Name 4\",\"Name 5\",\"Name 6\"};
ArrayAdapter<String> contactAdpater;
String itemSelected;
String choosenColor;
private final Context context = this;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ArrayList<String> myContactList = new ArrayList<String>(Arrays.asList(contactNames));
OnItemLongClickListener itemChangeColorListener = new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent,View arg1,int position,long arg3) {
itemSelected = parent.getItemAtPosition(position).toString();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
final String[] colorNames = {\"Red\",\"Green\",\"Blue\"};
builder.setTitle(\"Pick a Colour!\")
.setItems(colorNames,new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,int which)
{
choosenColor = colorNames[which];
//Toast.makeText(getApplicationContext(),colorNames[which],Toast.LENGTH_SHORT).show(); <<-- its working fine here
//I am not able to access parent here... I want to perform,**//parent[position].setBackgroundColor(Color.RED); in case Red is selected from Dialog**
}
});
builder.show();
return false;
}
};
contactAdpater = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myContactList);
setListAdapter(contactAdpater);
getListView().setOnItemLongClickListener(itemChangeColorListener);
}
}
解决方法
是的,有你的问题
您必须使用视图的setBackgroundColor(int color);用于更改颜色(如果第一个ListView的选定项具有从Dialog中选择的颜色)。
因此,在onClick中,您必须使用:
choosenColor = colorNames[which];
if(choosenColor.equals(\"Red\"))
{
view.setBackgroundColor(Color.RED);
}
else if(choosenColor.equals(\"Blue\"))
{
view.setBackgroundColor(Color.BLUE);
}
else if(choosenColor.equals(\"Green\"))
{
view.setBackgroundColor(Color.GREEN);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。