Spinnerによるコンボボックスと同等な機能を実装するテスト
「Spinner」コントロールを使用するとコンボボックスと同等な機能を実装することができます。
データはXMLでも実装できるようですが、このサンプルではコードで実装させています。
「ArrayAdapter」を使用してデータを用意し、「Spinner」コントロールに設定することで
データを表示させています。
package com.example.test.test49;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.RelativeLayout;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
init();
createScreen();
}
private ArrayAdapter<String> adapter=null;
private void init()
{
adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
adapter.add("北海道");
adapter.add("青森県");
adapter.add("秋田県");
adapter.add("岩手県");
adapter.add("宮城県");
adapter.add("山形県");
adapter.add("福島県");
}
//Spinnerによるコンボボックスと同等な機能を実装するテスト
private void createScreen()
{
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
//座標の初期設定
int x=0;
int y=0;
int width=0;
int height=0;
//配置を設定
x=50;
y=50;
width=300;
height=100;
RelativeLayout.LayoutParams obj1 = null;
obj1=getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
Spinner spinner = new Spinner(this);
spinner.setAdapter(adapter);
layout.addView(spinner,obj1);
}
//レイアウトを決定するオブジェクトを生成し渡します
private RelativeLayout.LayoutParams getLayoutObject(int width, int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
|
|