小编KrL*_*ler的帖子

验证EditText中的电子邮件

我想验证EditText中引入的电子邮件,以及我已经拥有的代码:

final EditText textMessage =(EditText)findViewById(R.id.textMessage);

final TextView text =(TextView)findViewById(R.id.text);

    textMessage.addTextChangedListener(new TextWatcher() { 
        public void afterTextChanged(Editable s) { 
            if (textMessage.getText().toString().matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+") && s.length() > 0)
            {
                text.setText("valid email");
            }
            else
            {
                text.setText("invalid email");
            }
        } 
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
        public void onTextChanged(CharSequence s, int start, int before, int count) {} 
    }); 
Run Code Online (Sandbox Code Playgroud)

问题是当我在"@"之后引入3个字符时,它会显示消息"有效电子邮件",当我在介绍完整的电子邮件时它必须出现.

有什么建议吗?

谢谢你们!

regex email android android-edittext

16
推荐指数
3
解决办法
3万
查看次数

检查JSON中是否存在subObject

我正在检查JSON字符串中的对象是否存在使用此:

JSONObject json = null;

         try {
            json = new JSONObject(myJsonString);
        } catch (JSONException e) { e.printStackTrace(); } 


        if(json.has("myObject")) System.out.println("EXISTS");

        else System.out.println("DOESN'T EXIST");
Run Code Online (Sandbox Code Playgroud)

当我尝试检查子对象是否存在时,会出现问题.例如:

...,"queue":{"building":{"q0":{"id":177779,...
Run Code Online (Sandbox Code Playgroud)

队列总是存在并且也在构建,但是q0并不总是存在.那么,我该如何检查q0的存在?并且,有没有办法使用Gson库检查它?

先感谢您!

string android json gson

8
推荐指数
1
解决办法
2万
查看次数

setProgressDrawable填充整个seekBar

正如我在标题中所说,当我使用setProgressDrawable时,它会填满整个SeekBar:如果进度为34%,则进度显示为100%但拇指显示正确的百分比34%.我不知道可能是什么问题......

   done.setProgressDrawable(getResources().getDrawable(R.drawable.seekbar_progress));
   done.setThumb(getResources().getDrawable(R.drawable.seekbar_thumb));
Run Code Online (Sandbox Code Playgroud)

seekbar_progress.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="15dp"    android:color="#52a8ec"/>
Run Code Online (Sandbox Code Playgroud)

seekbar_thumb.xml

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
<gradient android:startColor="#ffffffff" android:endColor="#ff585858" android:angle="270"/>
<size android:height="17dp" android:width="5dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

任何的想法?

先感谢您!

android progress fill seekbar progress-bar

6
推荐指数
2
解决办法
8032
查看次数

setText不会将文本设置为EditText

我有一个问题,这是我用Android开发近三年来从未有过的问题...

我想拍照,拍完照片后,EditText活动的s变得清晰.我在做什么设置的值EditText,以Strings使用getText().toString()拍照后恢复它们.

字符串与数据完美地存储在一起,但是当我使用时setText,它不起作用......奇怪的是它setHint有效!

怎么会这样?

这是我正在使用的代码:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                // Image captured and saved to fileUri specified in the Intent

                grabImage(imgView);

                for (int u = 0; u <= 2; u++)
                {
                    if (savedImgs[u].equals(""))
                    {
                        imgs = u + 1;
                        savedImgs[u] = photo.toString();
                        break;
                    }
                }

                /*Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); ---> It …
Run Code Online (Sandbox Code Playgroud)

android settext android-edittext

6
推荐指数
2
解决办法
8508
查看次数

字符串数组内的字符串数组

我想在另一个字符串数组中创建一个字符串数组,如下所示:

<string-array name="names">
        <string-array name="man">
            <item>Jake</item>
          </string-array>
            <string-array name="woman">
            <item>Loise</item>
          </string-array>
</string-array>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何访问主字符串数组中的字符串数组。在这样做之前,我已将所有名称组织在同一个字符串数组中,并以这种方式访问​​:

String names[] = res.getStringArray(R.array.names);
Run Code Online (Sandbox Code Playgroud)

但现在我需要对数据进行分类。如何访问 SUB 字符串数组?

先感谢您!

xml arrays string android

5
推荐指数
1
解决办法
2607
查看次数

动态setOnClickListener

我动态创建不同的按钮,如下所示:

for (int toShow = 1; toShow <= nShips; toShow++)
    {
        btn = new Button(this);
        btn.setBackgroundResource(shipDrawable.get(ima));
        btn.setLayoutParams(params);
        row[pos].addView(btn);
        btn.setId(shipId.get(ima));
        if (row[pos].getChildCount() == 3) pos++;
        ima++;
    }
Run Code Online (Sandbox Code Playgroud)

我需要知道每个按钮的身份,因为彼此有不同的动作.然后,我尝试这样设置onClickListener:

btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View btn) {
            switch(btn.getId()){
                case 1000: System.out.println("FIRST");
                break;

                case 1004: System.out.println("FOURTH");
                break;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

但它不起作用.似乎onClickListener唯一影响最后一个项目的创建.如果我创建四个按钮,只有第四个按钮会有一个onClickListener.

如何让我的点击监听器工作?

android button listener onclicklistener

3
推荐指数
1
解决办法
4602
查看次数

检查JSON中是否存在对象

我需要知道一个对象是否存在于JSON字符串中,并根据该对象的存在执行不同的操作.如果它不存在,我想省略该对象,因为它抛出NullPonterException.我尝试使用if但没有成功......有人能告诉我如何检查对象的存在?

先感谢您!

android json gson deserialization

3
推荐指数
1
解决办法
1万
查看次数

使用 ffmpeg 禁用默认字幕轨道

我正在创建一个包含 4 个不同文件的 MKV 容器:

  • 视频.mp4
  • 音频_en.mp4
  • 音频_es.mp4
  • 字幕.ass

为此,我使用以下ffmpeg脚本:

ffmpeg -i video.mp4 -i audio_es.mp4 -i audio_en.mp4 -i subtitles.ass \
-map 0:v -map 1:a -map 2:a -map 3:s \
-metadata:s:a:0 language=spa \
-metadata:s:a:1 language=eng \
-metadata:s:s:0 language=spa -disposition:s:0 -default \
-default -c:v copy -c:a copy -c:a copy -c:s copy result.mkv
Run Code Online (Sandbox Code Playgroud)

看起来result.mkv很棒,一切都按预期工作,除了一件事:字幕仍然设置为默认轨道,因此 VLC 等播放器会自动显示它们。我已经尝试了很多不同的方法来避免旗帜发生这种情况disposition,但我无法让它发挥作用。

我应该如何修改脚本以使 MKV 的字幕轨道不被标记为default

提前致谢!

ffmpeg

3
推荐指数
1
解决办法
4313
查看次数