- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力通过使用这个 Github 项目来使用水平寻呼机 https://github.com/ysamlan/horizontalpager.这工作正常并执行水平交换。但在我的项目中,我动态添加了布局、按钮和单选按钮。单选按钮在静态放置时会在水平分页上更改其状态,但我已将它们动态放置,因此 RadioGroup.OnCheckedChangeListener
不起作用。
我的主课是
package com.PointofSale;
import java.util.List;
import database.in.*;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.view.ViewPager.LayoutParams;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.DigitalClock;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
public class SalesActivity extends Activity{
private HorizontalPager mPager;
private RadioGroup mRadioGroup;
com.PointofSale.HorizontalPager horizontalPager;
ProductDbHandler prodDbHand;
Cursor mCursor;
RelativeLayout deptSysKeys;
RadioButton[] rb;
int number_Of_Pages;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sale_layout);
DigitalClock dc = (DigitalClock) findViewById(R.id.digitalClock1);
prodDbHand=new ProductDbHandler(this);
mPager=(HorizontalPager)findViewById(R.id.horizontal_pager);
mRadioGroup=(RadioGroup)findViewById(R.id.radioGroup);
deptSysKeys=(RelativeLayout)findViewById(R.id.DeptKeyslayout);
List<GetDeptInfo> getDept = prodDbHand.getAllDept();
int deptSize=getDept.size();
number_Of_Pages=(deptSize/5+1);
rb = new RadioButton[number_Of_Pages];
((ViewGroup)mRadioGroup.getParent()).removeView(mRadioGroup);
for(int i=0; i<number_Of_Pages; i++){
rb[i] = new RadioButton(this);
//rb[1].setChecked(true);
rb[i].setId(i);
mRadioGroup.addView(rb[i]); //the RadioButtons are added to the radioGroup instead of the layout
}
rb[0].setChecked(true);
deptSysKeys.addView(mRadioGroup);//you add the whole RadioGroup to the layout
final LinearLayout[] keysLayout=new LinearLayout[number_Of_Pages];
com.PointofSale.HorizontalPager.LayoutParams llp = new com.PointofSale.HorizontalPager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
Button[] deptBtn=new Button[deptSize];
int[] DeptId=new int[deptSize];
String[] DeptName=new String[deptSize];
int k=0;
int a=0;
for(int i=0;i<number_Of_Pages;i++){
keysLayout[i]=new LinearLayout(this);
keysLayout[i].setOrientation(LinearLayout.HORIZONTAL);
keysLayout[i].setId(i);
System.out.println("LinerLayout Created:"+i);
keysLayout[i].setLayoutParams(llp);
for(int j=a;j<deptSize;j++){
deptBtn[j]=new Button(this);
deptBtn[j].setText(getDept.get(j).getName());
System.out.println("Departments:"+getDept.get(j).getName());
deptBtn[j].setId(getDept.get(j).getID());
keysLayout[i].addView(deptBtn[j]);
k++;
if(k==5){
break;
}
}
k=0;
a=a+5;
mPager.addView(keysLayout[i]);
}
}
private final HorizontalPager.OnScreenSwitchListener onScreenSwitchListener =
new HorizontalPager.OnScreenSwitchListener() {
@Override
public void onScreenSwitched(final int screen) {
// Check the appropriate button when the user swipes screens.
/*switch (screen) {
case 0:
mPager.setCurrentScreen(0, true);
// mRadioGroup.check(R.id.rg[0]);
break;
case 1:
mPager.setCurrentScreen(1, true);
// mRadioGroup.check(R.id.radio_btn_1);
break;
case 2:
mPager.setCurrentScreen(2, true);
//mRadioGroup.check(R.id.radio_btn_2);
break;
default:
break;
}*/
for(int i=0; i<number_Of_Pages;i++){
if(screen==i){
mPager.setCurrentScreen(i, true);
//RadioButton btn = (RadioButton) mRadioGroup.getChildAt(i);
mRadioGroup.check(rb[i].getId());
System.out.println("Radio Button ID:"+rb[i].getId());
}
}
}
};
private final RadioGroup.OnCheckedChangeListener onCheckedChangedListener =
new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final RadioGroup group, final int checkedId) {
// Slide to the appropriate screen when the user checks a button.
/*switch (checkedId) {
case btn.getId():
mPager.setCurrentScreen(0, true);
break;
case btn.getId():
mPager.setCurrentScreen(1, true);
break;
case btn.getId():
mPager.setCurrentScreen(2, true);
break;
default:
break;
}*/
for(int i=0; i<number_Of_Pages;i++){
if(checkedId==i){
mPager.setCurrentScreen(i, true);
}
}
}
};
}
更改单选按钮状态的代码静态代码在上面有注释。建议我一些我错了的地方,并提供任何帮助。
最佳答案
您没有在 RadioButton
对象上调用 setOnCheckedChangeListener
for(int i=0; i<number_Of_Pages; i++){
rb[i] = new RadioButton(this);
rb[i].setId(i);
// Add this line to register your onCheckedChangedListener handler
rb[i].setOnCheckedChangeListener(onCheckedChangedListener);
mRadioGroup.addView(rb[i]); //the RadioButtons are added to the radioGroup instead of the layout
}
关于Android:RadioGroup.OnCheckedChangeListener 在我的应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806711/
我在菜单中有一个开关,它在操作栏上显示为一个操作。当我将 checked 属性设置为 true 后,不会立即调用 onCheckedChangeListener。该开关确实显示在操作栏中,每次按下它时
这个问题在这里已经有了答案: I can't create an onCheckedChanged listener for my RadioGroup (3 个答案) 关闭 9 年前。 我有一个问
这不是什么大问题,但我正在努力寻找一种正确的方法。 我有以下情况: public class SettingsDialogFragment extends DialogFragment impleme
我正在创建一个自定义对话框 fragment ,里面有一个radiogroup。我在行中收到错误 rdoGrp.setOnCheckedChangeListener(new RadioGroup.On
我目前正在研究我的大学项目。在应用程序中,我有一个带有 fragment 的 Activity 。该 fragment 包含一个布局,其中嵌套了线性布局,其中有多个自定义单选按钮。我无法放置一个单选按
如果用户将其切换为 true,我想将 Switch 切换为 false。 为了避免再次触发 onCheckChanged,我删除了监听器,然后在切换后将其添加回来。 mCheckedChangeLis
知道为什么当我选择单选按钮时我的应用程序会崩溃吗? 我导入了android.widget.RadioGroup.OnCheckedChangeListener,我也试过了 new RadioGroup
我正在努力通过使用这个 Github 项目来使用水平寻呼机 https://github.com/ysamlan/horizontalpager.这工作正常并执行水平交换。但在我的项目中,我动态添加了
这是我的代码,对我不起作用。我使用来自 this 的代码示例。 XML- 和代码: mVisibilitySwitchCompat = (SwitchCompat) findViewById(R.i
我正在尝试制作一个基于 ChipGroup 和 Chip 的 recyclerview 过滤器 我在我的应用程序上使用 fragment ,因此,包含 RecyclerView 的 fragment
我正在尝试将 OnCheckedChangeListener 设置为 CheckBox 但我的应用程序在运行时退出。我还尝试为我的 TextView 设置监听器,但我仍然得到相同的结果。谁能帮忙? i
我正在尝试启动一个新的 Activity ,该 Activity “实现RadioGroup.OnCheckedChangeListener”,但是我尝试过的所有方法都会导致应用程序崩溃。有人有任何输
在 radio 组应用程序崩溃的 fragment 内调用 onCheckedCahngedListener 时,我遇到一些问题。单击单选按钮组内的任何项目时,应用程序崩溃了。 fragment_se
我在 setOnCheckedChangeListener 和 OnCheckedChangeListener 下有红线。错误消息告诉我:此行有多个标记 - OnCheckedChangedListe
我将此代码与开关一起使用,以检查监听器是否正常工作。问题是应用程序总是记录“开关状态”为真。这也反射(reflect)在使用注释掉的代码时的行为中。 Switch mainNetworkSwitch
我一直在关注 NerdRanch Android 教程 [第 8 章,Wiring Widgets] 并遇到了这个麻烦的错误。这是我收到的错误: Class 'Anonymous class deri
我想为 OnCheckedChangeListener 使用 lambda 而不是匿名类。 设置监听器的原始代码工作正常并读取: mCheckBox.setOnCheckedChangeListene
在我的 android 应用程序中,我有 fragment ,在其中一个 fragment 中,我有复选框。这个复选框有这样的监听器,在检查时显示警告对话框: @Override public voi
我正在编写一段代码,其中我使用来自非 Activity 类的 ActionListener 创建动态复选框。 现在我想从 CompoundButton.OnCheckedChangeListener(
我的应用程序中有一个 listView。对于 listView 中的每个元素,它都有一个 Switch。以前我在 listView 适配器的 getView 方法中为 Switch 实现了一个 onC
我是一名优秀的程序员,十分优秀!