安卓对Edittext监听的问题
 public class MainActivity extends ActionBarActivity {
    private EditText first;
    private EditText second;
    private TextView result;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        first =(EditText) findViewById(R.id.first);
        second=(EditText) findViewById(R.id.second);
        result=(TextView) findViewById(R.id.result);
        first.addTextChangedListener(textwatcher);
        second.addTextChangedListener(textwatcher);
    }
    private TextWatcher textwatcher =new TextWatcher() {
        int f=Integer.parseInt(first.getText().toString());
        int s=Integer.parseInt(second.getText().toString());
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
            result.setText(f+s);
        }
        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub

        }
        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub
        }
    };

为什么编译时没有显示错误 但运行在模拟器上确程序出错停止运行了呢(XML文件是对的)

3个回答

除了判断楼上的方法,还有 result.setText(f+s); 你写成 result.setText(f+s+“”);转换成字符串

int f=Integer.parseInt(first.getText().toString());
int s=Integer.parseInt(second.getText().toString());
这两句的时候你的edittext里面的内容是空的,调用parseInt会抛NumberFormatException
你可以打开log看一看

做非空判断,打几个log就知道啦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android的edittext输入内容控制问题
效果见图,我想要实现模版名下的EditText输入内容的控制,只允许输入a-z A-Z 0-9 分号; 和汉字。以下是我自己的代码,都不能完全实现或是报错。求大神点拨 图片弄不上来,其实布局很简单,就是一个edittext和一个Button, 实现了edittext的输入要求,Button就可见并触发跳转事件 public class MainActivity extends Activity { private static String tag = "MainActivity"; private Button btn; private EditText edt, content; private final int[] code = { 8, 13, 32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 186 }; private String digits = "0123456789abcdefghijklmnopqrstuvwxyz;"; private String tmp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn_edit); btn.setEnabled(false); edt = (EditText) findViewById(R.id.edt); edt.addTextChangedListener(edt_watcher); // edt.setOnKeyListener(input); btn.setOnClickListener(l); } //我的思路一:键盘监听事件,监听keyCode是否在允许的按键集合中, //但会出现如果我一按不在集合中的就会刷新之前已经输入过的内容 OnKeyListener input = new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub for (int i = 0; i < code.length; i++) { if (keyCode != code) { edt.setText(tmp); edt.invalidate(); } } return false; } }; //我的思路二:文本输入监听,在监听判断后我先获取到edt.gettext然后进行一个拼接处理,然后再设置回edittext的内容中 //会出现每次输入符合的字符会在左边添加,光标始终在最左边。 在处理上有问题, 看看这里能给出处理意见 // 文本输入监听 TextWatcher edt_watcher = new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String str = s.toString(); String edttext = edt.getText().toString(); StringBuffer sb = new StringBuffer(); // TODO Auto-generated method stub if (s.length() > 0 && str.matches("[a-zA-Z_0-9;]+") || str.matches("[\u4e00-\u9fa5]+")) { sb = sb.append(s); edt.setText(sb.toString()); Log.v(tag, sb.toString()+"======sb"); btn.setEnabled(true); } else { edttext = sb.append(tmp).toString(); Log.v(tag, edttext + "======edttext"); edt.setText(edttext); tmp = str.substring(0,s.toString().length()-2); edt.setText(tmp); btn.setEnabled(false); } Log.v(tag, s + "======s"); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { Log.v(tag, s + "======beforeTextChanged"); } //我的思路三:如下注释部分,但这里需要实现digits里包含所有的汉字,这里不知道怎么去弄 @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub Log.v(tag, s + "======afterTextChanged"); /*String str = s.toString(); if (str.equals(tmp)) { return; // 如果tmp==str则返回,因为这是我们设置的结果。否则会形成死循环。 } StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { if (digits.indexOf(str.charAt(i)) >= 0) { // 判断字符是否在可以输入的字符串中 sb.append(str.charAt(i)); // 如果是,就添加到结果里,否则跳过 } tmp = sb.toString();// 设置tmp,因为下面一句还会导致该事件被触发 edt.setText(tmp);// 设置结果 edt.invalidate(); } if ((str.matches("[a-zA-Z_0-9;]+") || str .matches("[\u4e00-\u9fa5]+"))) { sb.toString().substring(str.length()); } tmp = sb.toString(); edt.setText(tmp); edt.invalidate();*/ } }; //判断输入的是不是汉字,没有用上的方法 private boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { String edttext = edt.getText().toString(); StringBuffer sb = new StringBuffer(edttext); sb.append(c); edt.setText(sb); return true; } return false; } //判断是不是字母或者数字,分号,没有用上的方法, private boolean isRightData(CharSequence s) { if (s.toString().matches("[0-9;]+") || s.toString().matches("[a-zA-Z]+")) { String edttext = edt.getText().toString(); StringBuffer sb = new StringBuffer(edttext); sb.append(s); edt.setText(sb); edt.invalidate(); return true; } return false; } OnClickListener l = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, IldmActivity.class); intent.putExtra("edt", edt.getText().toString()); startActivityForResult(intent, 10); Log.v(tag, edt.getText() + "intent"); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 10 && resultCode == RESULT_OK) { } }; }
Android EditText利用TextWatcher判断问题
**android 开发,有一个需求,就是利用扫描仪快速往app界面中的Edittext输入一串数字,当这串数字符合规则的时候,调用查询方法。否则不符合规则,就提示。但是大家用过这个TextWatcher的都知道,它每次改变内容都会调用方法,所以致使不到一秒的时间连续调用好多次不符合规则的情况,程序就异常了。不知道有什么方法可以解决,下面是简单的举例:** ``` package com.xzsj.measure; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.Window; import android.widget.EditText; import android.widget.Toast; public class GoneNActivity extends Activity { private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_gone_n); // 绑定EditText输入框 editText = (EditText) findViewById(R.id.editText1); // 实现文字内容改变监听(TextWatcher) editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { // 内容改变后的监听方法 if (s.toString().length() == 10) { Toast.makeText(GoneNActivity.this, "格式正确!", Toast.LENGTH_SHORT).show(); } else { // 不符合格式,(length等于10符合规则,那么这个else分支,连续执行9次,所以异常了,有没有什么办法,实现类似效果,但是不异常) Toast.makeText(GoneNActivity.this, "格式错误!", Toast.LENGTH_SHORT).show(); } } }); } } ```
关于在Activity中监听 其它layout中的edittext
在ActivityA中通过viewpage 加载了三个layout 然后直接在ActivityA中的oncreate方法中 初始化其它layout中的edittext 然后去edittext.addTextChangedListener 去监听的话会出空指针的错误 但是在加载的layout中加一个button 然后在这个点击方法中去初始化 然后edittext.addTextChangedListener就不会出错 有什么办法不用后面的方法直接去监听 其它layout中的edittext啊
安卓listview中edittext设置数字键盘后的问题
listview edittext设置数字键盘后 输入刷新的时候软键盘会一直来回切换数字键盘和英文键盘 而且已经监听焦点刷新后是得到焦点了,但就是每输一个字刷新的时候输入法会一直数字键盘和英文键盘来回切换 要怎么解决啊?
怎样把光标放在EditText中文本的末尾处?
我改变了keyListener监听事件上EditText中的值。 但是当我改变文本后,光标会移动到编辑框的最开始处。我是想让光标处于文本的末尾处。 怎么把光标移动到EditText编辑框中文本的末尾呢?
android程序的监听器相关问题
自学了几个月android开发,遇到些麻烦,第一次在这里发问,请教高手们给予解惑,问题比较肤浅,望勿见笑! :) 问题1:如果一个android程序里面有很多button按钮,如计算器或者输入法程序类似的,点击一个按钮即可在EditText区域显示输入的值,米想到最直接的蛮办法就是可以为每个button按钮设一个监听器,但细细一想这样要设置好多监听器哦,个人觉得这样肯定不是什么好办法,遂求高手支招。 问题2:如果一个android程序里监听器设的太多,会不会影响整体程序的性能什么的?从程序性能优化方面考虑的话,有什么更好的办法(优化算法)来解决呢? 望高手们回复时涉及到代码的部分多多解释下相关函数的功能。谢谢! :D
EditText删除内容的方法
请问下哪个大神知道EditText删除内容时间,调用的是哪个方法呢?或者怎么禁止 EditText删除内容呢?我想在监听EditText内容长度只有2个时间禁止继续删除内容。 知道的大神说下,谢谢啦。
RecyclerView的item过多时,无法获取屏幕外item的EditText的值。
安卓。 RecyclerView在屏幕外的item通过RecyclerView对象的getChildAt()方法得到的LinearLayout为null,这样就无法获取到这些item上的EditText控件以及的EditText控件的值。 目前的需求是,要获取到RecyelerView所有item上的EditText的值。 自己想了两个方法: 1. 在item上的EditText获取焦点时,取得这个EditText控件; 2. 在Adapter中用BaseViewHolder对象的findViewById()方法获取EditText控件,再注册文本改变的监听。 但这两种方法好像都有问题,不知道该怎么解决。 目前使用的Adapter是开源项目BaseRecyclerViewAdapterHelper。
安卓EditText的内容实时监听,怎么让输入拼音的时候不跟着响应
要做一个输入字数限制,但是输入拼音的时候字符也进行了判定。怎么取消这种判定
listview item中是有EditText改变时获取Postion?
listview item中是有EditText, 怎么在监听每个EditText的时候获取这个EditText的Postion?
android获得EditText获得焦点时报空指针异常!!
本人编程菜鸟。。遇到问题了。。第一次在csdn上提问,求解答T-T 上一个页面key的值传add是按了一个添加的按钮,下面还有add的监听器,模拟器运行后按了添加的按钮后就程序stopped了,看logcat的错误就是下面第二张图了。。实在不知道怎么解决了,我是拿了一个程序改的,页面的xml里的一堆,把一个EditText的名字改了,对应的那些文本框的名字也改了,因为是想本来是不可获取焦点的,然后点了add后,就可以添加信息,那些文本框就变成可以编辑的了。但是只是改了名字,那些setfocusable的我都改了。然而报空指针异常。。我很迷 ![图片说明](https://img-ask.csdn.net/upload/201705/11/1494486699_964000.png) ![图片说明](https://img-ask.csdn.net/upload/201705/11/1494486586_308211.png)
Android监听键盘回车键的问题,为什么我没按一次回车键都会添加两个EditText?
paracelnum.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == event.KEYCODE_ENTER){ add_edit = new EditText(getContext()); add_edit.setSingleLine(true); add_editext_linear.addView(add_edit); add_edit.setImeOptions(EditorInfo.IME_ACTION_DONE); add_edit.setInputType(EditorInfo.TYPE_CLASS_TEXT); add_edit.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == event.KEYCODE_ENTER){ add_edit = new EditText(getContext()); add_editext_linear.addView(add_edit); add_edit.setSingleLine(true); add_edit.setImeOptions(EditorInfo.IME_ACTION_DONE); add_edit.setInputType(EditorInfo.TYPE_CLASS_TEXT); } return false; } }); } return false; } });
三个edittext监控的问题
![图片说明](https://img-ask.csdn.net/upload/201810/23/1540274514_826167.jpg) 初始就传入单价 要求实现当输入数量 算出总价 改变单价 算出总价 改变总价 算出单价 这怎么写监听事件?????
求教关于listview内edittext点击修改内容的问题
我现在在做一个listview, 想要实现的效果是:点击每个item一下,可以默认选中不带后缀名的内容,如点击内容为“pic.jpg”会选中“pic”,并且键盘弹出可进行内容修改 我在listview的item里放的是edittext,并在adapter里对edittext进行了setOnFocusChangeListener的监听,为的是能点击后直接选中不带后缀名的字符串内容 但问题是,运行后点击item,的确可以选中不带后缀名的字符串内容,但无法编辑,点击弹出的虚拟键盘输入内容就会报异常闪退 我不知道应该怎么做,或者说我该怎么实现这样的效果 ``` @Override public View getView( int position, View convertView, ViewGroup parent) { mPosition =position; if (convertView == null) { convertView = mInflater.inflate(R.layout.item, parent, false); viewHolder = new ViewHolder(); viewHolder.mEditView = (EditText) convertView.findViewById(R.id.id_tv_title); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.mEditView.setText("" + mDatas.get(position)); viewHolder.mEditView.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean hasFocus) { if (hasFocus) { viewHolder.mEditView.setSelection(0, mDatas.get(mPosition).lastIndexOf('.')); } else { } } }); return convertView; } ``` 报错如下 ``` 08-05 11:04:02.452: E/AndroidRuntime(16670): FATAL EXCEPTION: main 08-05 11:04:02.452: E/AndroidRuntime(16670): Process: com.crow.shareupload, PID: 16670 08-05 11:04:02.452: E/AndroidRuntime(16670): java.lang.IndexOutOfBoundsException: setSpan (28 ... 28) ends beyond length 5 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1018) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:607) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.text.Selection.setSelection(Selection.java:78) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.EditText.setSelection(EditText.java:92) 08-05 11:04:02.452: E/AndroidRuntime(16670): at com.crow.shareupload.MyAdapter$2.onFocusChange(MyAdapter.java:72) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.onFocusChanged(View.java:5258) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.TextView.onFocusChanged(TextView.java:7921) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.handleFocusGainInternal(View.java:5014) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.requestFocusNoSearch(View.java:7724) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.requestFocus(View.java:7703) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.requestFocus(View.java:7670) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.requestFocus(View.java:7649) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.ListView.layoutChildren(ListView.java:1746) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.AbsListView.onLayout(AbsListView.java:2148) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.layout(View.java:15686) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewGroup.layout(ViewGroup.java:4967) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.layout(View.java:15686) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewGroup.layout(ViewGroup.java:4967) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.layout(View.java:15686) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewGroup.layout(ViewGroup.java:4967) 08-05 11:04:02.452: E/AndroidRuntime(16670): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:494) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.layout(View.java:15686) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewGroup.layout(ViewGroup.java:4967) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.View.layout(View.java:15686) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewGroup.layout(ViewGroup.java:4967) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2076) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1833) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1058) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5796) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.Choreographer.doCallbacks(Choreographer.java:580) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.Choreographer.doFrame(Choreographer.java:550) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.os.Handler.handleCallback(Handler.java:739) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.os.Handler.dispatchMessage(Handler.java:95) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.os.Looper.loop(Looper.java:211) 08-05 11:04:02.452: E/AndroidRuntime(16670): at android.app.ActivityThread.main(ActivityThread.java:5333) 08-05 11:04:02.452: E/AndroidRuntime(16670): at java.lang.reflect.Method.invoke(Native Method) 08-05 11:04:02.452: E/AndroidRuntime(16670): at java.lang.reflect.Method.invoke(Method.java:372) 08-05 11:04:02.452: E/AndroidRuntime(16670): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016) 08-05 11:04:02.452: E/AndroidRuntime(16670): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) ```
安卓关于监听输入法弹出与隐藏然后做相应的事情
当我开启登录界面,edittext自动获取焦点,输入法显示,输入法显示的时候我要做一些控件动画,当手动按下隐藏键盘的的时候,我又要恢复以前的状态。所以要监听输入发的状态,请大神们给点意见?谢谢!
新手学android,监听两个按钮的问题,出现错误
package com.example.xingpengfei.guessnumber; import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.Random; public class MainActivity extends AppCompatActivity { private int number; private Button button1; private Button button2; private EditText editText; private void testRandom() { Random random=new Random(); number=random.nextInt(100); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); testRandom(); button1=(Button)findViewById(R.id.button1); button2=(Button)findViewById(R.id.button2); editText=(EditText)findViewById(R.id.edit_text); button1.setOnClickListener(this); button2.setOnClickListener(this); } public void onClick(View v) { switch (v.getId()){ case R.id.button1: //String input=editText.getText().toString(); int input=0; if(input==number) Toast.makeText(MainActivity.this,"恭喜你猜对了!",Toast.LENGTH_SHORT).show(); else if(input>number) Toast.makeText(MainActivity.this,"您猜的数字偏大!",Toast.LENGTH_SHORT).show(); else Toast.makeText(MainActivity.this,"您猜的数字偏小!",Toast.LENGTH_SHORT).show(); break; case R.id.button2: testRandom(); break; default: break; } } } 这是完整代码 在 button1.setOnClickListener(this); button2.setOnClickListener(this); 这里的this报错,请指教该如何改?
键盘的弹出事件怎么监听呀
聊天窗口中的listview, 键盘弹出之后一部分被压住了,要是能监听键盘弹出事件就能解决。监听edittext获得的焦点,不管用因为代码弹出键盘前就运行了 求解决 感激不尽
关于监听多次触发的问题
求助各路大神 此处有一个登录验证的小程序,里面有个登录按钮设有监听,按钮监听里有一个验证函数,第一次跑程序,验证涵数没问题但如果第一次验证失败,当第二次触发监听后,验证数就会莫名其妙的跳过去,(我想可能和验证函数第一次返回NULL有关),如过真是这样,我该怎么样解决 监听位置位于LoadActivity.class中的 bt_load.setOnclickListener()内 ``` //登录函数 LoadActivity package cn.edu.nuc.skid_menu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.content.DialogInterface; import java.util.List; import cn.edu.nuc.skid_menu.sqlite_utils.utils; /** * Created by Administrator on 2017/6/9. */ public class LoadActivity extends Activity{ private EditText met_name; private EditText met_pw; private Button bt_load; private Button bt_register; private cn.edu.nuc.skid_menu.sqlite_utils.utils utils; private List list; @Override protected void onCreate( Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_load); met_name = (EditText) findViewById(R.id.et_name); met_pw = (EditText) findViewById(R.id.et_pw); bt_load = (Button) findViewById(R.id.bt_load); bt_register = (Button) findViewById(R.id.bt_register); utils = new utils(LoadActivity.this); //String s= utils.execDate("delete from db_user where _id = ? ",new Object[]{"wsy123"});//增删改数据 //Log.i("wsy", s+""); utils.insert("wsy123","123456","male","运汽集团");//插入数据库 // utils.db.delete("db_user","_id = ?",new String[]{"wsy"});//删除数据 //utils.update();//更改数据 list = utils.selectAll(); utils.show_list(list);//显示数据库 Log.i("wsy", "分开!"); //String i ="wsy12345"; //List list1 = utils.select(i); //utils.show_list(list1); //显示_id为wsy12345的信息 // list = utils.select(met_name.getText().toString()); //!!!!!!!!就是这个监听!!!!!!!!!!!!!!!!!! bt_load.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("wsy", "触发登录监听"); String checkResult=checkInfo(); //!!!!!!!二次验证上面的函数checkInfo会被跳过!!!!!!! Log.i("wsy", "完成验证"); list = utils.select(met_name.getText().toString()); if(checkResult==null){ Intent intent=new Intent(LoadActivity.this,Main_activity.class); startActivity(intent); Log.i("wsy", "发送成功"); } else{ Log.i("wsy", "发送失败"); AlertDialog.Builder builder=new AlertDialog.Builder(LoadActivity.this); builder.setTitle("错误提示"); builder.setMessage(checkResult); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { met_pw.setText(""); met_name.setText(""); } }); builder.create().show(); } } }); bt_register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(LoadActivity.this,RegisterActivity.class); startActivity(intent); } }); } private String checkInfo(){ if(met_name.getText().toString()==null||met_name.getText().toString().equals("")){ Log.i("wsy", "用户名不能为空!"); return "用户名不能为空"; } if(met_pw.getText().toString().trim().length()<6||met_pw.getText().toString().equals("")||met_pw.getText().toString().trim().length()>15){ Log.i("wsy", "密码长度为6-15位"); return "密码长度为6-15位"; } if(utils.select(met_name.getText().toString()).size()==0) { Log.i("wsy", "账号不存在"); return "账号不存在"; } if(!met_pw.getText().toString().trim().equals(utils.test_list(list).toString().trim())) { Log.i("wsy", "密码错误"); return "密码错误";} Log.i("wsy", "可以登录"); return null; } } //数据库管理工具 utils. package cn.edu.nuc.skid_menu.sqlite_utils; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.Cursor; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class utils extends SQLiteOpenHelper { SQLiteDatabase db = null; private final static String DBNAME = "db_user"; private final static int VERSION = 1; public utils(Context context) { super(context, DBNAME, null, VERSION); db = this.getReadableDatabase(); } public Cursor selectCursor(String sql, String[] selectionArgs) { return db.rawQuery(sql, selectionArgs); } public int selectCount(String sql, String[] selectionArgs) { Cursor cursor = db.rawQuery(sql, selectionArgs); int result = cursor.getCount(); if (cursor != null) { cursor.close(); } return result; } public List<Map<String, Object>> selectAll() { Log.i("wsy", "小成 1"); Cursor cursor = db.rawQuery("select * from db_user limit ?,? ", new String[]{"0", "999"}); Log.i("wsy", "小成2 "); return cursorToList(cursor); } public List<Map<String, Object>> select(String i) { Log.i("wsy", "成1"); String[] strings = {i}; Cursor cursor = db.query("db_user",new String[]{"_id","password","sex","school_name"},"_id =?",strings,null,null,"_id desc","0,5"); Log.i("wsy", "成2 "); return cursorToList(cursor); } public List<Map<String, Object>> cursorToList(Cursor cursor) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); while (cursor.moveToNext()) { Log.i("wsy", "有数据 "); Map<String, Object> map = new HashMap<String, Object>(); for (int i = 0; i < cursor.getColumnCount(); i++) { map.put(cursor.getColumnName(i), cursor.getString(i)); } list.add(map); } return list; } public String execDate(String sql, Object[] bindArgs) { try { db.execSQL(sql, bindArgs); return "成功"; } catch (Exception e) { return e.getMessage(); } } public void destroy() { if (db != null) { db.close(); } } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS db_user (_id VARCHAR(10) PRIMARY KEY ,password,sex,school_name)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (newVersion > oldVersion) { db.execSQL("DROP TABLE IF EXISTS db_users"); onCreate(db); } } public void show_list(List list) { Map map = null; String netMode1 = null; String netMode2 = null; String netMode3 = null; String netMode4 = null; for (int i = 0; i < list.size(); i++) { map = (HashMap) list.get(i); netMode1 = (String) map.get("_id"); if (netMode1 == null) { Log.i("wsy", "空了"); } else { Log.i("wsy", "_id:" + netMode1); } netMode2 = (String) map.get("password"); if (netMode2 == null) { Log.i("wsy", "空了"); } else { Log.i("wsy", "password:" + netMode2); } netMode3 = (String) map.get("sex"); if (netMode3 == null) { Log.i("wsy", "空了"); } else { Log.i("wsy", "sex:" + netMode3); } netMode4 = (String) map.get("school_name"); if (netMode4 == null) { Log.i("wsy", "空了"); } else { Log.i("wsy", "school_name:" + netMode4); } } } public void insert(String s1,String s2,String s3,String s4) { ContentValues values = new ContentValues(); values.put("_id", s1); values.put("password", s2); values.put("sex", s3); values.put("school_name", s4); long rowId = db.insert("db_user", null, values); } public void update() { ContentValues values = new ContentValues(); values.put("_id", "wsy"); values.put("password", "a123a123"); values.put("sex", "female"); values.put("school_name", "运气集团"); int result = db.update("db_user", values, "_id=?", new String[]{"wsy"}); } public SQLiteDatabase get_db(){ return db; } public String test_list(List list){ Map map = null; String netMode2 = null; map = (HashMap) list.get(0); netMode2 = (String) map.get("password"); return netMode2; } } //登录成功后的界面activity public class Main_activity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); Intent intent = getIntent(); } } //登录页面 activity_load.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="cn.edu.nuc.skid_menu.LoadActivity" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="驾考通" android:textSize="40sp" android:layout_gravity="center" android:textColor="#00cc00" android:layout_marginTop="120dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="一考就通" android:textSize="25sp" android:layout_marginRight="15dp" android:layout_gravity="right" android:textColor="#CC0000" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="账号 : " android:textSize="24sp" android:textColor="#000000" android:layout_marginLeft="15dp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:id="@+id/et_name" android:hint="请输入账号" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="5dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码 : " android:textSize="24sp" android:textColor="#000000" android:layout_marginLeft="15dp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:id="@+id/et_pw" android:hint="请输入密码" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" android:textColor="#000000" android:textSize="20sp" android:layout_marginTop="15dp" android:id="@+id/bt_load"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册" android:textColor="#000000" android:textSize="20sp" android:layout_marginTop="15dp" android:id="@+id/bt_register"/> </LinearLayout> </LinearLayout> //登录成功后的界面 Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#6699ff" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="王绍阳,欢迎您" android:textSize="30sp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="顺序刷题" android:layout_marginTop="40dp" android:textSize="30sp" android:id="@+id/bt_question" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="错题攻克" android:layout_marginTop="20dp" android:textSize="30sp" android:id="@+id/bt_dif_question" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改信息" android:layout_marginTop="20dp" android:textSize="30sp" android:id="@+id/bt_revise" /> </LinearLayout>
在 ListView Footer 中的 Enter Click 监听器
我想在 listView 中设置一个 edit text,作为一个footer,那样的话我就能添加一个评论。我可以把edittext 添加到listview中,但是没有看到我设置的监听器。为什么啊? editText = new EditText(getActivity()); editText.setHint("add comment"); editText.setBackgroundColor(Color.GRAY); getListView().addFooterView(editText); editText.setImeOptions(EditorInfo.IME_ACTION_DONE); editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Log.d(DetailFragment.class.getSimpleName(), "pressed"); return false; } }); setListAdapter(commentAdapter);
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问