我有一个自定义ListView点击一个项目触发一个新的Activity.每一行ListView都有一个CheckBox和一个TextView.
这是getView我自定义的方法ListView:
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.puzzles_row, null);
}
ListedPuzzle lp = items.get(position);
if (lp != null) {
TextView title = (TextView) v.findViewById(R.id.listTitles);
title.setText(lp.getTitle());
CheckBox star = (CheckBox) v.findViewById(R.id.star_listed);
star.setChecked(lp.isStarred());
star.setTag(new Integer(position));
star.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Integer realPosition = …Run Code Online (Sandbox Code Playgroud) 这不是一个问题,但我试图找到一个正确的方法来做到这一点.
我有以下情况:
public class SettingsDialogFragment extends DialogFragment implements OnCheckedChangeListener {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.settings, container);
...
CheckBox lBox1 = (CheckBox)view.findViewById(R.id.checkBox1);
lBox1.setOnCheckedChangeListener(this);
lBox1.setChecked(true);
return view;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
....
}
Run Code Online (Sandbox Code Playgroud)
我setChecked(true)遇到的"问题"是,通过调用onCheckChanged将会触发.我想当我给布局充气时 - CheckBox用错误的设置进行初始化,然后我将其更改为true确实是一个CheckedChanged事件.
我当然可以在设置初始值后改变顺序并分配监听器,但有没有办法给布局充气,同时以某种方式传递各种组件的初始值?它们是动态的,因此我无法将值修复为settings.xml中的特定值
干杯
package com.example.koustav.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Switch swi = (Switch) findViewById(R.id.swch);
swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
{
}
});
public void onClick(View view)
{
boolean isOn = ((Switch) view).isChecked();
if (isOn)
{
((TextView) findViewById(R.id.largey)).setTextColor(getResources().getColor(R.color.black));
}
else
{
((TextView) findViewById(R.id.largey)).setTextColor(getResources().getColor(R.color.white));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在这个项目中使用Android Studio.我已经在互联网上搜索了一个可扩展的解决方案但找不到解决方案.
我一直试图setOnCheckedChangeListener用于一个Switch对象.但无论我尝试什么,我总是得到一个 …
我的问题是 - 当我点击 a 时<Switch>,它首先被切换,然后OnCheckedChangeListener被调用。
我想要的是这样的:
<Switch>被点击 --> 我显示一个 AlertDialog --> 如果按下是或否 --> 然后用setChecked(boolean)翻转 ` ,[boolean = true 如果按下是,如果按下否则为 false]。
问题:<Switch>单击时,它会自动翻转。我想首先从 AlertDialog 用是或否来限定它。
sw_enableDisable
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder
.setMessage(
"Sure you want to enable?. ")
.setCancelable(true)
.setPositiveButton(
getString("YES"),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
}
})
.setNegativeButton( …Run Code Online (Sandbox Code Playgroud) 我想使用导航抽屉中的开关按钮从主布局中添加和删除片段。
这是我的代码- menuitem.xml`
<group
android:id="@+id/drawer_group1"
android:checkableBehavior="single">
<item
android:id="@+id/nav_timer"
android:icon="@drawable/ic_timer"
android:title="Timer">
</item>
<item
android:id="@+id/addFragment_Bt"
app:actionViewClass="android.widget.Switch"
android:title="Most Used" />
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="Settings">
</item>
</group>`
Run Code Online (Sandbox Code Playgroud)
主Activity.class
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
switch (menuItem.getItemId()) {
case R.id.addFragment_Bt:
Switch switchCompat = findViewById(R.id.addMostUsed_Bt);
switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentById(R.id.Most_Used_Fragment_container);
if (isChecked == true) {
if (fragment != null) {
fragmentManager.popBackStack(); …Run Code Online (Sandbox Code Playgroud) oncheckedchanged android-fragments android-dialogfragment android-studio navigation-drawer
我需要使用标签(RadioButton)在应用程序中切换片段.我应该使用什么事件监听器?onClick还是onCheckedChanged?如果可以举例
我试图向Switch添加一个监听器,但由于某种原因它不会收听检查事件.
我CompoundButton.OnCheckedChangeListener在我的活动上实现 了这样的:
public class MyActivity extends Activity
implements CompoundButton.OnCheckedChangeListener
Run Code Online (Sandbox Code Playgroud)
这是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
newOrSavedSwitch = (Switch) findViewById(R.id.new_or_saved_switch);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(this, "Monitored switch is " + (isChecked ? "on" : "off"),
Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
吐司没有显示,我也没有看到logcat中的错误.
我有15个CheckBox,当我检查超过5时我必须卡住用户.我使用该方法OnCheckedChangeListener知道是否检查了一个项目,但我不知道如何在选择了5个项目后限制.
请参阅下面的代码:
int lengthBox = 15;
int lenghtCount = 0;
// inside onCreate method
final CheckBox[] checkbox = new CheckBox[lengthBox];
OnCheckedChangeListener checker = new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton cb, boolean b) {
// How can I improve this condition?
if(checkbox[0].isChecked() || checkbox[1].isChecked() ||
checkbox[2].isChecked() || checkbox[3].isChecked() ||
checkbox[4].isChecked() || checkbox[5].isChecked() ||
checkbox[6].isChecked() || checkbox[7].isChecked() ||
checkbox[8].isChecked() || checkbox[9].isChecked() ||
checkbox[10].isChecked() || checkbox[11].isChecked() ||
checkbox[12].isChecked() || checkbox[13].isChecked() ||
checkbox[14].isChecked()) {
if(lenghtCount < 5){
lenghtCount++; …Run Code Online (Sandbox Code Playgroud) 我的代码中有一个CheckBox,如果选中它,用户就不能取消选中它.这就是我决定在Checkbox上实现onCheckedChangeListener的原因.
如果已选中并单击,则会询问确认,否则不会询问确认.当询问确认(通过对话框)并且用户取消时,复选框必须保持(或再次设置)检查.所以我在点击取消按钮时实现了"CheckBox.setChecked(true)",现在我的确认被问了两次.我不知道怎么摆脱这个.
这是相关的代码:
mEventAttendingCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
//do nothing
} else {
Context mContext = EventSingleViewActivity.this;
final Dialog dialog = new Dialog(mContext);
dialog.setCancelable(true);
Button confirmButton = (Button) dialog.findViewById(R.id.confirmButton);
confirmButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
//do something
}
});
Button cancelButton = (Button) dialog.findViewById(R.id.cancelButton);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
mEventAttendingCheckBox.setChecked(true);
}
});
dialog.show();
}
}
});
Run Code Online (Sandbox Code Playgroud) 我有以下RadioButtons:
<asp:RadioButton id="rdoStandard" runat="server" Checked="true" GroupName="delivery" OnCheckedChanged="Check_Clicked" />
<asp:RadioButton ID="rdoExpress" runat="server" GroupName="delivery" OnCheckedChanged="Check_Clicked" />
<asp:RadioButton ID="rdoNextDay" runat="server" GroupName="delivery" OnCheckedChanged="Check_Clicked" />
Run Code Online (Sandbox Code Playgroud)
在后面的代码我有这个:
Protected Sub Check_Clicked(ByVal sender As Object, ByVal e As EventArgs) Handles rdoStandard.CheckedChanged, rdoExpress.CheckedChanged, rdoNextDay.CheckedChanged
RaiseEvent DeliveryOptionChanged()
End Sub
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上面但也尝试了不同的方法,例如每个的点击方法RadioButtons,我从来没有打过Check_Clicked方法.
我不想AutoPostBack,也不明白为什么你想要发射一个事件?
自从我使用VBWebForms 以来已经有一段时间了,有人可以帮助我吗?
我正在尝试切换。当我点击切换按钮(如果它处于打开状态,我是指选中的)时,它会关闭一些游戏对象;如果我点击切换按钮(如果它处于关闭状态,我是指未选中的),它会打开一些游戏对象,但是我不知道哪个功能是统一的
toggle.onselect?
toggle.onValuesChanged?或其他
public GameObject controlledObject;
public NamesGet nameController;
public Text text;
public Button button;
public Toggle toggle;
private bool deneme;
public void FixedUpdate()
{
text.text = controlledObject.name;
if(?????????)
{
controlledObject.SetActive(!controlledObject.activeSelf);
}
}
Run Code Online (Sandbox Code Playgroud) oncheckedchanged ×11
android ×8
checkbox ×2
c# ×1
dialog ×1
events ×1
java ×1
radio-button ×1
toggle ×1
vb.net ×1