スピナーのAndroidの援助を動的に項目を追加、削除することができます

入門

Androidのスピンコントロールを学習した後、あなたはスピナー追加および削除するためのプロセスとオプションを入力するのEditTextテキストボックスを完了する必要があり、私は最終的に完成し、学ぶために最初から交換のための完全なコードを提供します。

ファイル名を指定して実行ショット

あなたはあなたのためかどうかの記事を有用知っているようにするために、実行上の最初の結果)
ここに画像を挿入説明

詳細な手順の実施形態

最初のステップ:activity_main.xmlファイルに変更され、すなわちページレイアウト

これは、4つの部分、EDITTEXT、2つのButton、スピナー、それらの位置および修正する大きさと色スタイルに分割されています。具体的なコードは次のよう:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <EditText
        android:id="@+id/EditInfo"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:paddingLeft="20dp"
        android:textSize="50sp"
        android:hint="@string/editInfo" />

    <Button
        android:id="@+id/add_proj"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="30dp"
        android:layout_marginRight="20dp"
        android:textSize="30sp"
        android:background="@drawable/btn_shape"
        android:text="@string/add"
        />
    <Button
        android:id="@+id/delete_proj"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/btn_shape"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:text="@string/delete"/>
    <Spinner
        android:id="@+id/spinner_view"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_width="fill_parent"
        android:layout_height="50dp"/>
</LinearLayout>

パートII:スタイルコードは、(最初​​の完全な再形式の関数を作るために)変更します

スタイルの変更方法の個々のコンポーネントが類似しているため、それがデモButtonボタンのスタイルが少し変更されているだけですので。
具体的なプロセス; 1 RES-描画可能ディレクトリで右クリックして[新規を、Drawableのリソースファイルを選択
ここに画像を挿入説明
2、ルート要素オプションで図形を選択し、後のファイル名にファイル名に塗りつぶし
ここに画像を挿入説明
最後のファイルし、次のコードを入力します。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="#C3C3C3"/>
    <corners android:radius="10dp"/>
    <stroke android:color="#000000" android:width="3dp"/>
</shape>

ステップ3:設定された静的データ(初めて開くので、データに少しスピナーは常にいいです)

strings.xmlは値の下、選択したディレクトリ内のファイルを開きますresは、リソースにルートノードの文字列配列の子ノードを作成し
ここに画像を挿入説明
、特定のコードは次のようです

<resources>
    <string-array name="sprinner">
        <item>吃饭</item>
        <item>睡觉</item>
        <item>打豆豆</item>
    </string-array>
</resources>

第四段階(最も重要なステップ)

ファイルを検索し、開いて、次のコードを入力しMainActivity(コードは、コードにそれほど明確ノート直接ステップごとに書かれているので)!

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    /*1先对组件进行声明*/
    EditText editText;
    Button add;
    Button delete;
    Spinner spinner;
    ArrayList<String> list = new ArrayList<>();
    ArrayAdapter<String> adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /*2通过id对组件进行后端绑定*/
        editText=findViewById(R.id.EditInfo);
        add=findViewById(R.id.add_proj);
        delete=findViewById(R.id.delete_proj);
        spinner=findViewById(R.id.spinner_view);
        /*4获取Strings.xml文件中构建的数组数据*/
        String[] value = getResources().getStringArray(R.array.action);/*因为我们的原始数据存储在string.xml文件中,所以getResource然后getStringArray;然后通过数组的id获取*/
        /*5用for循环将数组数据存储到list中*/
        for (int i=0 ;i<value.length;i++) {
            list.add(value[i]);
        }
        /*6sadapter配置数据以及配置下拉样式并且pinner绑定适配器*/
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt("项目总览");
        /*7添加按钮监听器*/
        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adapter.add(editText.getText().toString());
                setTitle("当前项目有"+String.valueOf(list.size())+"个");
            }
        });
        delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adapter.remove(editText.getText().toString());
                setTitle("当前项目有"+String.valueOf(list.size())+"个");
            }
        });
    }
}

注:1、DOは、元のパッケージにはしませんでし貼り付けるためにあなたの名前を入れないで貼り付けたときに、
2あなたがノックするあなたの手であれば迷惑に問題がある場合は、その後、ノートのインポートのコードパケットを入力

エピローグ

私は、Androidのコンピュータの学生が学んでいたアンドロイドで発見された私は、あなたがコメントを持っているか、私を希望の場合はアンドロイドに興味があるより多くの人々が開始させるための独自の努力を通じて願っていますので、学習過程でオンラインリソースを見つけることは容易ではありませんACは、私のマイクロ文字を追加するだけでなく書かれたか、彼らはあなたに助けの少しがあると感じた場合、賞賛は私の小さな幸せ見つけることを望んですることができます。最後に、ほとんどの牛のBをプログラマ!皆に来ます。
ここに画像を挿入説明

リリース3元の記事 ウォンの賞賛1 ビュー133

おすすめ

転載: blog.csdn.net/qq_41824524/article/details/105249795