小编Bek*_*aKK的帖子

EditText上的Android电子邮件验证

大家好我有一个edittext,我想在我的Editttext中编写电子邮件验证,这是一个xml代码

<EditText
        android:id="@+id/mail"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignLeft="@+id/phone"
        android:layout_below="@+id/phone"
        android:layout_marginRight="33dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/edit_background"
        android:ems="10"
        android:hint="E-Mail"
        android:inputType="textEmailAddress"
        android:paddingLeft="20dp"
        android:textColor="#7e7e7e"
        android:textColorHint="#7e7e7e" >
</EditText>
Run Code Online (Sandbox Code Playgroud)

这是一个java代码

emailInput = mail.getText().toString().trim();

emailPattern = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

if (emailInput.matches(emailPattern)) {
    Toast.makeText(getActivity(), "valid email address", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(getActivity(), "Invalid email address", Toast.LENGTH_SHORT).show();
    mail.setBackgroundResource(R.drawable.edit_red_line);
}
Run Code Online (Sandbox Code Playgroud)

我无法验证.烤面包消息总是"无效的电子邮件地址"我做错了什么?如果有人知道解决方案,请帮助我

android email-validation android-edittext

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

更改DecimalFormat区域设置

DecimalFormat在Edittext的addTextChangedListener方法中有自定义,一切都很完美,但是当我更改语言(语言环境)时,我的addTextChangedListener无效.

double answer = inputDouble * counterToDouble;
DecimalFormat df = new DecimalFormat("##.########");
// df=(DecimalFormat)numberFormat;

df.setRoundingMode(RoundingMode.DOWN);
answer = Double.parseDouble(df.format(answer));

unicoinsAmmount.setText(String.valueOf(df.format(answer)));
Run Code Online (Sandbox Code Playgroud)

我搜索了我的问题并找到了NumberFormat解决方案:

NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用这段代码.

java android bigdecimal decimalformat

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

Android用淡入/淡出动画改变背景图像

我编写的代码可以每5秒随机更改一次背景图像.现在我想使用淡入/淡出动画来改变背景图像,但我不知道如何使用这个动画.

这是我的来源:

void handlechange() {

    Handler hand = new Handler();
    hand.postDelayed(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub

            // change image here
            change();

        }

        private void change() {
            // TODO Auto-generated method stub

            Random rand = new Random();

            int index = rand.nextInt(image_rundow.length);

            mapimg.setBackgroundResource(image_rundow[index]);

            handlechange();
        }
    }, 4000);

}
Run Code Online (Sandbox Code Playgroud)

一切都好.我可以随机更改背景图像,但我不知道如何使用动画淡入/淡出.

如果有人知道解决方案,请帮助我,谢谢.

android android-animation android-imageview

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

Android 中不同构建风格的不同应用程序名称?

我有 2 种构建口味,例如,flavor1 和 flavor2

我希望我的应用程序被命名为“AppFlavor1”,当我为flavor1 构建时,“AppFlavor2”当我为flavor 2 构建时

这是我的清单源代码片段

<application
    android:name=".PApplication"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".ui.activities.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
Run Code Online (Sandbox Code Playgroud)

这是一个 gradle 文件的源代码片段

apply plugin: 'com.android.application'
    android {

        compileSdkVersion 25
        buildToolsVersion '26.0.2'
        flavorDimensions "default"
        defaultConfig {
            minSdkVersion 16
            targetSdkVersion 25
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }

        signingConfigs {
            release {
            }
        }

        buildTypes {
            release {
                minifyEnabled false
                signingConfig signingConfigs.release
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }

        productFlavors.whenObjectAdded { flavor -> …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

7
推荐指数
1
解决办法
3778
查看次数

如何测试 BOOT_COMPLETED 广播接收器

我想在模拟器中使用操作 BOOT_COMPLETED 检查广播接收器。

这是我的代码

public class AutoRunService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
        Toast.makeText(UApplication.getInstance(), "Application is ready to open ", Toast.LENGTH_SHORT).show();

        myFunciton(context);

    }
}

public void myFunciton(Context context) {

}
Run Code Online (Sandbox Code Playgroud)

}

<receiver
        android:name=".AutoRunService"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

我正在使用 Windows 10 和 genymotion 模拟器。有什么方法可以检查模拟器中的广播接收器吗?我如何重新启动模拟器来检查该接收器?有直接命令吗?

提前致谢。

android reboot android-emulator genymotion android-broadcastreceiver

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

以米为单位计算两个位置之间的距离

我有两个位置,我想以米为单位计算距离.我写了一些代码,但它并不完美.

private void getDistanceBetweenTwoPoints(double lat1,double lon1,double lat2,double lon2)
{
    Location loc1 = new Location("");
    loc1.setLatitude(lat1);
    loc1.setLongitude(lon1);

    Location loc2 = new Location("");
    loc2.setLatitude(lat2);
    loc2.setLongitude(lon2);

    int R = 6371; // km

    double dLat = deg2rad(lat2-lat1);
    double dLon = deg2rad(lon2-lon1);
    double  a =
            Math.sin(dLat/2) * Math.sin(dLat/2) +
                    Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
                            Math.sin(dLon/2) * Math.sin(dLon/2)
            ;
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double distanceInMeters = R * c;
    Log.e("distanceInMeters",distanceInMeters/10000+"mm");
}

public double  deg2rad(double deg) {
    return deg * (Math.PI/180);
}
Run Code Online (Sandbox Code Playgroud)

如何计算米的距离?我的目标是,如果米> 200做某事.我怎样才能解决我的问题?

gps android android-location android-gps

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

Android列表视图滚动侦听器最后一个项目位置

我有listview女巫包含40项,我想写滚动监听器方法.我的意思是当滚动位置将是最后项目位置(第40项)我将显示Toast消息.我写了一些代码.我可以在最后一个项目位置显示Toast消息,但是当我再次向上滚动时我可以显示Toast消息这是我的来源

list.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {




        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

            if (list.getLastVisiblePosition() == totalItemCount - 1
                    ) {

                Toast.makeText(getActivity(), "Last", Toast.LENGTH_SHORT)
                        .show();


                try {

                } catch (Exception e) {
                }

            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

我怎么能改变代码才能显示最后一个项目位置的吐司消息?谢谢

android android-listview onscrolllistener

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

在Java中通过索引删除字符

我试图通过字符串中的索引删除字符.这是我的来源:

 private String removeByIndex(String str, int index) {
    return str.replaceFirst(String.valueOf(str.charAt(index)), "");
}
Run Code Online (Sandbox Code Playgroud)

例如,我的输入字符串1.05.我的目标是1.5通过删除点后面的第一个元素来接收.

我这样调用了这个函数

removeByIndex("1.05",Stringlength-2)
Run Code Online (Sandbox Code Playgroud)

但结果是1.

我怎么能解决这个问题?

java string

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