zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android studio基础练习02【监听器实现下拉菜单】

AndroidStudio基础 实现 练习 02 监听器 下拉菜单
2023-09-14 09:14:10 时间

1. 手动拖拽实现功能键

 2. 添加代码改名 

代码如下 

<resources>
    <string name="app_name">Suke</string>
    <string name="find_grade">Find Language!</string>
    <string-array name="feature">
        <item>高数</item>
        <item>英语</item>
        <item>政治</item>
        <item>计算机</item>
    </string-array>
</resources>

 3. 更改设置

4. 功能实现

方法一

代码如下 

package com.example.suke;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private final ProgramExpert expert = new ProgramExpert();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = findViewById(R.id.feature);
        TextView textView = findViewById(R.id.Course);
        String[] grades = {"150", "99", "100", "149"};
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                textView.setText("您" + spinner.getSelectedItem().toString() + "的成绩为:" + grades[i]);
                Toast.makeText(MainActivity.this, textView.getText().toString(), Toast.LENGTH_SHORT).show();
           
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}

注:Spinner组件不支持item点击事件,即Spinner的setOnItemClickListener无效,可以用setOnItemSelectedListener替代 

Toast.makeText(MainActivity.this, text “”, Toast.LENGTH_SHORT).show();

Toast是为了提醒用户,而又不影响用户的操作的提示栏。

第一个参数:方法中的MainActivity.this表示在MainActivity这个文件里显示;

第二个参数:消息框的内容;

                        text在后面的引号中输入想输出的文本。

                        text可以替换为R.string.自己定义的文本,表示引用string下的文本的资源;

第三个参数:显示的时间;

LENGTH_SHORT表示Toast的显示时间一微秒计算,这里调用系统定义好扥时间,也可自己写入确定的时间。

必不可少的.show(); 是用来将定义好的Toast显示在MainActivity里的,如果不调用.show();方法定义的Toast就没有任何意义。

方法二

代码如下 

package com.example.suke;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private final ProgramExpert expert = new ProgramExpert();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = findViewById(R.id.feature);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                String feature = spinner.getSelectedItem().toString();
                String score = expert.getScore(feature);
                TextView textView = findViewById(R.id.Course);
                textView.setText(score);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}
package com.example.suke;

public class ProgramExpert {
    public String getScore(String feature) {
        String result;
        switch (feature) {
            case "高数":
                result = "您的高数成绩: 150分";
                break;
            case "英语":
                result = "您的英语成绩: 99分";
                break;
            case "政治":
                result = "您的政治成绩: 100分";
                break;
            case "计算机":
                result = "您的计算机成绩: 149分";
                break;
            default:
                result = "您未参加考试!!!";
        }
        return result;
    }
}

5. 效果展示