安卓开发问题集锦

安卓开发问题集锦

1. ShapeDrawable的资源文件的内边距问题

drawable目录下的新建一个shape_bg.xml,键入如下代码

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!--设置一个黑色边框-->
    <stroke
        android:width="5dp"
        android:color="#000000"/>

    <!-- 渐变色 -->
    <!-- gradient 梯度、坡度 -->
    <!--
        android:angle属性,值为0表示从左到右,值为90表示从下到上,值为45表示从左下到右上
        值为135表示从右下到左上,值必须是45的倍数
    -->
    <gradient
        android:angle="315"
        android:startColor="#FCD209"
        android:endColor="#C0C0C0"/>

    <!-- 设置一下边距,让空间大一点 -->
    <padding
        android:left="5dp"
        android:top="5dp"
        android:right="5dp"
        android:bottom="5dp"/>

    <corners
        android:radius="15dp"/>
    
    <!--<solid-->
    <!--    android:color="#ffffff"/>-->
</shape>

绘制图形如下:
在这里插入图片描述
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:gravity="center"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/shape_bg"
            android:text="你好,世界!"/>
    </RelativeLayout>
</LinearLayout>

主页面布局如下:
在这里插入图片描述
调节shape_bg.xml文件中padding标签中的属性的值

<!-- 设置一下边距,让空间大一点 -->
    <padding
        android:left="50dp"
        android:top="50dp"
        android:right="50dp"
        android:bottom="50dp"/>

主页面布局更改为如下:
在这里插入图片描述

2. Android Studio的Button背景色都是紫色且无法修改

themes.xml文件

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->

    <!--Theme.MaterialComponents.DayNight.NoActionBar.Bridge-->
    <style name="Theme.HelloWorld" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>

修改为:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->

    <!--Theme.MaterialComponents.DayNight.NoActionBar.Bridge-->
    <style name="Theme.HelloWorld" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>

3. 获取单选框文本的两种方法

第一种:

package edu.tyut;

import android.os.Bundle;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class RadioButtonActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radiobutton_test);
        Button button = findViewById(R.id.btnPost);
        RadioGroup radioGroup = findViewById(R.id.radioGroup);

        // 第一种方法
        radioGroup.setOnCheckedChangeListener(((group, checkedId) -> {
            RadioButton radioButton = findViewById(checkedId);
            Toast.makeText(getApplicationContext(), "您选了: " + radioButton.getText(),
                    Toast.LENGTH_LONG).show();
        }));
    }
}

第二种:

package edu.tyut;

import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class RadioButtonActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radiobutton_test);
        Button button = findViewById(R.id.btnPost);
        RadioGroup radioGroup = findViewById(R.id.radioGroup);
        // 第二种方法
        // 1:
        button.setOnClickListener(view -> {
            RadioButton radioButton = findViewById(radioGroup.getCheckedRadioButtonId());
            Toast.makeText(getApplicationContext(), "您提交了1: " + radioButton.getText(),
                    Toast.LENGTH_LONG).show();
        });
        // 2:
        button.setOnClickListener(view -> {
            for(int i = 0; i < radioGroup.getChildCount(); i ++ ){
                RadioButton radioButton = (RadioButton) radioGroup.getChildAt(i);
                if(radioButton.isChecked()){
                    Toast.makeText(getApplicationContext(), "您提交了: " + radioButton.getText(),
                            Toast.LENGTH_LONG).show();
                    break;
                }
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

令人头秃的代码( •᷄⌓•᷅ )੨੨南上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值