• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Android常用小知识

android 搞代码 3年前 (2022-03-01) 28次浏览 已收录 0个评论

手机返回键监听

  • 如果在此办法中不调用super.onBackPressed()办法,则不会执行页面的返回操作。

    <code class="java">@Override
    public void onBackPressed() {
       Toast.makeText(getApplicationContext(), "onBackPressed", Toast.LENGTH_SHORT).show();
       super.onBackPressed();
    }

    参考文章

ListView中应用CheckBox抉择状态凌乱问题解决办法

  • 在数据bean中增加一个抉择状态的属性,在点击勾选框的监听中设置对应值
  • 而后在前面设置每个item的多选框抉择状态即可。

    <code class="java">onCheckedChangeListener{
      if (isChecked) {
      bean.setCheckedType(1);
      } else {
      bean.setCheckedType(0);
      }
    }
    holder.deleteCheckbox.setChecked( bean.getCheckedType() == 1) ;

应用注解定义接口返回的名称

<code class="java">@SerializedName("tname") // 这是接口返回的字段名称
private String name; // 这是本人定义的名称

应用Gson解析List类型的json格局数据

<code class="java">List<Bean> list = new Gson().fromJson(jsonStr, new TypeToken< List<Bean>>(){}.getType());

TextView粗体

<code class="xml">android:textStyle= "bold"

关掉所要到的界面两头的activity

<code class="java">intent.setFlags( Intent .FLAG_ACTIVITY_CLEAR_TOP);

LinearLayout点击变换背景色彩

<code class="xml">android:clickable="true"

<item
android:drawable="@drawable/register_btn_pressed"
android:state_focused="true"/>
<item
android:drawable="@drawable/register_btn_pressed"
android:state_pressed="true"/>
<item android:drawable="@drawable/register_btn_normal"/>

ListView嵌套ListView,itemClick生效

设置父ListView的最外层布局中退出

<code class="java">android:descendantFocusability= "blocksDescendants"

勾销子ListView控件的焦点

<code class="java">listview.setFocusable(false) ;
listview.setClickable(false) ;

设置透明度

<code class="xml">android:alpha="0.5"

去除Button边框暗影

<code class="xml">style="?android:attr/borderlessButtonStyle"

三星机型调用零碎相机后,会呈现主动旋转照片的问题,具体解决办法

https://github.com/LengM/MyApplication/blob/master/app/src/main/java/com/yng/ming/myapplication/util/img/PictureUtil.java

对于开关按钮,不倡议设置禁止双击,可能会呈现理论状态和按钮状态不符问题

singleLine过期代替

EditText:

<code class="xml">android:inputType= "text"
android:lines= "1"

button默认英文大写

button将默认英文大写除去

<code class="xml">android:textAllCaps= "false"

解决ListView的item点击生效问题

在Item布局的根布局加上

Android:descendantFocusability=”blocksDescendants”

解决ScrollView嵌套ListView运行后最先显示进去的地位不在顶部而是两头问题

<code class="java">listView.setFocusable(false) ;

状态栏设置

<code class="java">// 通明状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window window = getWindow();
  window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
   | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
   | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
  window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  //设置状态栏的色彩
  window.setStatusBarColor(Color.BLACK);
  window.setNavigationBarColor(Color.BLACK);
}

TextView文字色彩无奈设置

<code class="java">getContext().getResources().getColor(textColor)

include引入toolbar不显示,或呈现空指针状况

起因是view值为null,从新给一下值即可

<code class="java">if ( null == view) {
  view = getView();
}

设置小键盘回车按钮

android:imeActionLabel= "搜寻"
android:imeOptions="actionSearch"

搭配

et_address.setImeOptions( EditorInfo.IME_ACTION_SEARCH);
et_address.setOnEditorActionListener( new TextView.OnEditorActionListener(){});

Android去除EditView主动焦点获取

将EditText的父级控设置成

android:focusable= "true"
android:focusableInTouchMode= "true"

ImageView图片显示不全可将属性调整如下

android:scaleType= "centerCrop"

避免dialog窗体泄露(WindowLeaked)

@Override
public void onAfter() {
super.onAfter();
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}

设置适配屏幕(当本人的标题栏被顶部状态栏笼罩时应用)

android:fitsSystemWindows= "true"

PullToRefreshListView的layout\_width、layout\_height属性必须是match_parent,否则数据将无奈显示

PullToRefreshListView刷新:

onRefreshComplete() ;

暗藏软键盘

InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE) ;
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0) ;

DatePicker日期控件设置不可输出

android:descendantFocusability= "blocksDescendants"

设置按钮不可点击

btn_start.setEnabled(false) ;

包名与签名

包名不统一:零碎会认为是个新的软件,这就不算降级了
签名不统一:零碎会提醒先卸载之前装置的版本,能力持续装置新的

小提示框

Toast .makeText( context,"", Toast .LENGTH_SHORT) .show();

启动service

startService( new Intent( DriverActivity.this, LocationService.class)) ;

应用startService启动的service会无限期运行上来, 只有在内部调用Context的stopService或Service外部调用Service的stopSelf办法时,该Service才会进行运行并销毁

若从图库抉择照片谬误,门路不对

Intent intent1 = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

暗藏EditText中的下划线

android: background= "@null"

图片裁剪(在解决相机或相册返回时能够调用)

public void startCut(Uri path) {
Intent intent = new Intent( "com.android.camera.action.CROP");
intent.setDataAndType(path, "image/*");
intent.putExtra( "crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra( "aspectX", 4);
intent.putExtra( "aspectY", 4);
// outputX outputY 是裁剪图片宽高
intent.putExtra( "outputX", 300);
intent.putExtra( "outputY", 300);
//裁剪实现的图片有可能会呈现黑边,增加以下两个参数即可
intent.putExtra( "scale", true); //黑边
intent.putExtra( "scaleUpIfNeeded", true); //黑边
intent.putExtra( "return-data", true);
startActivityForResult(intent, PHOTO_CUT_CODE);
}

设置TextView显示一行超过局部以..显示

android:ellipsize= "marquee"
android:maxEms= "10"
android:lines= "1"

设置生效时,起因是超过的首要校验条件是TextView布局的宽度,如果是match_parent并且很宽的话,该成果会“生效”

设置文本2行显示,多出局部省略号

tv_content .setMaxLines(2);
tv_content .setEllipsize( TextUtils .TruncateAt .END);

刷新ListView

adapter.notifyDataSetChanged() ;

ScrollView去除边缘暗影(边缘款式,高低边缘暗影)

android:overScrollMode="never"

EditText增加此属性后,输出时,底部的布局会悬浮在软键盘上方

android:scrollbars="vertical"

输入框的数据因为复用导致数据显示凌乱:在adapter外面的onBindViewHolder函数中应用

// 强行敞开复用
holder.setIsRecyclable(false);

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Android常用小知识

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址