Android微调器定制
我需要使用微调器作为菜单。但问题是,当我点击一个项目时,它会被选中并显示在那个地方,这是我想要避免的行为。其次,我需要第一个项目始终是标题,无论选择了以下图像中的哪个项目:Android微调器定制,android,spinner,android-spinner,Android,Spinner,Android Spinner,我需要使用微调器作为菜单。但问题是,当我点击一个项目时,它会被选中并显示在那个地方,这是我想要避免的行为。其次,我需要第一个项目始终是标题,无论选择了以下图像中的哪个项目: 旋转器处于正常状态 当用户轻触微调器时 现在,如果用户点击任何项目,则不应更改标题,但应选择项目。我使用ListView实现了这一点,但我认为我必须使用适当的Android组件(如果真的有可能的话)。 提前谢谢 我已使用以下代码解决了上述问题,但需要使用微调器 布局文件 <RelativeLayout
ListView
实现了这一点,但我认为我必须使用适当的Android组件(如果真的有可能的话)。
提前谢谢
我已使用以下代码解决了上述问题,但需要使用微调器
布局文件
<RelativeLayout
android:id="@+id/header_main"
style="@style/layout_f_w"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:background="@color/heading_color" >
<TextView
android:id="@+id/headingText"
style="@style/layout_wrap"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="MATCH CENTER"
android:textColor="@color/text_color_white"
android:textSize="15sp"
android:textStyle="bold" />
<ImageButton
android:id="@+id/matchcenter_menu"
style="@style/layout_wrap"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/headingText"
android:background="@android:color/transparent"
android:paddingTop="20dp"
android:src="@drawable/drp_down_menu" />
</RelativeLayout>
public void showmatchcenter菜单(查看btn){
ScreenMenuItemsAdapter适配器=空;
mainscreenMenu=(ListView)findViewById(R.id.mainscreen\u菜单);
adapter=new ScreenMenuItemsAdapter(LiveScoreCrowdScreen.this,getResources().getStringArray(R.array.livescorecard_menuitems));
主屏幕菜单。设置适配器(适配器);
mainscreenMenu.setVisibility(View.VISIBLE);
mainscreenMenu.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图行、整型位置、长id){
CCApplication.ismenuOpen=false;
开关(位置){
案例0://刷新
//刷新屏幕
打破
案例1://亮点
//获得亮点
打破
案例2://偏好
//获取首选项
打破
案例3://当前时间
//获取当前时间
打破
}
mainscreenMenu.setVisibility(View.GONE);
}
});
}
只是一个黑客解决方案,不是合适的解决方案:
在MSelectedListener()中完成所有工作后,再次使用微调器设置适配器。
i、 e
spinner.setAdapter(您的_适配器);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图,
视图选择编辑视图,整数位置,长id){
//你在这里工作吗
//至少再次加载相同的适配器
spinner.setAdapter(您的_适配器);
}
}
@凌驾
未选择公共无效(AdapterView父视图){
//你的代码在这里
}
});
选择一个项目后,它将加载相同的适配器,并显示您之前的状态。您的尝试说明了什么?@PareshMayani:请再次查看问题。我已经发布了代码。是否要始终(在选择之后)显示匹配中心?还是什么?@RanjitPati:是的,我要在选择之前、之后和选择时显示匹配中心和关联的箭头图像。请把它当作一个标题。
<ListView
android:id="@+id/mainscreen_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@android:color/black"
android:cacheColorHint="#00000000"
android:divider="@android:color/white"
android:dividerHeight="1dp"
android:drawSelectorOnTop="false"
android:listSelector="@android:color/transparent" />
TextView headingText = (TextView)findViewById(R.id.headingText);
headingText.setTypeface(Utils.getCustomFont(LiveScoreCrowdScreen.this));
headingText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showMatchCenterMenu(v);
}
});
matcheCenterMenu = (ImageButton)findViewById(R.id.matchcenter_menu);
matcheCenterMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showMatchCenterMenu(v);
}
});
mainscreenMenu = (ListView)findViewById(R.id.mainscreen_menu);
public void showMatchCenterMenu(View btn) {
ScreenMenuItemsAdapter adapter = null;
mainscreenMenu = (ListView)findViewById(R.id.mainscreen_menu);
adapter = new ScreenMenuItemsAdapter(LiveScoreCrowdScreen.this, getResources().getStringArray(R.array.livescorecard_menuitems));
mainscreenMenu.setAdapter(adapter);
mainscreenMenu.setVisibility(View.VISIBLE);
mainscreenMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View row, int position, long id) {
CCApplication.isMenuOpened = false;
switch (position) {
case 0:// Refresh
//refresh screen
break;
case 1:// Highlights
//get highlights
break;
case 2:// Preferences
//get preferences
break;
case 3:// current time
// get current time
break;
}
mainscreenMenu.setVisibility(View.GONE);
}
});
}
spinner.setAdapter(your_adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView,
View selectedItemView, int position, long id) {
//Do works here
//atlast again load the same adapter
spinner.setAdapter(your_adapter);
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});