大致长这个模样,丑的确丑,没有设计下拉样式和选择样式
增删改查就不是我们要说的,所以不说了。
新手一枚,有的地方写的不好,请多见谅
xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@mipmap/loginbgi" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="101dp">
<Spinner
android:id="@+id/spin_region"
android:layout_width="100dp"
android:layout_height="100dp" />
<Spinner
android:id="@+id/spin_landmark"
android:layout_width="100dp"
android:layout_height="100dp" />
<Spinner
android:id="@+id/spin_plot"
android:layout_width="100dp"
android:layout_height="100dp" />
<Spinner
android:id="@+id/spin_status"
android:layout_width="100dp"
android:layout_height="100dp" />
</LinearLayout>
//下面的是增删改查的,就不用看了
<LinearLayout
android:layout_width="match_parent"
android:layout_height="101dp">
<Button
android:id="@+id/Add"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="@string/Add"/>
<Button
android:id="@+id/Del"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="@string/Del"/>
<Button
android:id="@+id/Mod"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="@string/Mod"/>
<Button
android:id="@+id/Sel"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="@string/Sel"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="201dp"
android:orientation="vertical"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/area"/>
<EditText
android:id="@+id/areaifmshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/technician"/>
<EditText
android:id="@+id/technicianifmshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
主要是把几个下拉选择框的id写了,方便对应的Activity找到控件
然后继续写它的Activity
package com.example.organic_farm_production_management;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
public class Glebe_Manage_Activity extends AppCompatActivity {
private Button mAdd;
private Button mDel;
private Button mMod;
private Button mSel;
private EditText mArea;
private EditText mTechnician;
private Spinner spin_region = null;
private Spinner spin_landmark = null;
private Spinner spin_plot = null;
private Spinner spin_status = null;
ArrayAdapter<String> adap_region = null;
ArrayAdapter<String> adap_landmark = null;
ArrayAdapter<String> adap_plot = null;
ArrayAdapter<String> adap_status = null;
GlebeService mGlebeService = new GlebeService(Glebe_Manage_Activity.this);
String region;
String landmark;
String plot;
String status;
int regionposition;
int landmarkposition;
int plotposition;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_glebe__manage);
mAdd = (Button) findViewById(R.id.Add);
mDel = (Button) findViewById(R.id.Del);
mMod = (Button) findViewById(R.id.Mod);
mSel = (Button) findViewById(R.id.Sel);
setSpinner();
mAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Glebe_Manage_Activity.this,AddActivity.class);
startActivity(intent);
}
});
mDel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Glebe_Manage_Activity.this,DelActivity.class);
startActivity(intent);
}
});
mMod.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Glebe_Manage_Activity.this,ModActivity.class);
startActivity(intent);
}
});
region = spin_region.getSelectedItem().toString();
landmark = spin_landmark.getSelectedItem().toString();
plot = spin_plot.getSelectedItem().toString();
status = spin_status.getSelectedItem().toString();
mSel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GlebeService glebeService = new GlebeService(Glebe_Manage_Activity.this);
String area = glebeService.GetArea(region,landmark,plot,status);
String technician = glebeService.GetTechnician(region,landmark,plot,status);
mArea = (EditText) findViewById(R.id.areaifmshow);
mTechnician = (EditText) findViewById(R.id.technicianifmshow);
mArea.setText(area);
mTechnician.setText(technician);
}
});
}
private void setSpinner(){
spin_region = (Spinner) findViewById(R.id.spin_region);
spin_landmark = (Spinner) findViewById(R.id.spin_landmark);
spin_plot = (Spinner) findViewById(R.id.spin_plot);
spin_status = (Spinner) findViewById(R.id.spin_status);
//下面看起来很复杂,实际上就是ArrayAdapter函数。
//Glebe_Manage_Activity是现在的Acitity文件
//item_select是选择框的样式
//mGlebeService.Showregion(****)就是查询region的代码,里面的参数不停的嵌套,有点丑。。。
//看你查询的这个函数怎么写。知道这个是你自己写的查询函数就好
//setSelection(0,true)让它默认的选第一个显示
//setDropDownViewResource(R.layout.item_drop)是设置下拉框样式的,item_drop是下拉样式的文件
adap_region = new ArrayAdapter<String>(Glebe_Manage_Activity.this, R.layout.item_select, mGlebeService.Showregion("region"));
adap_region.setDropDownViewResource(R.layout.item_drop);
spin_region.setAdapter(adap_region);
spin_region.setSelection(0, true);
adap_landmark = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[0]));
adap_landmark.setDropDownViewResource(R.layout.item_drop);
spin_landmark.setAdapter(adap_landmark);
spin_landmark.setSelection(0,true);
adap_plot = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showplot("plot",mGlebeService.Showregion("region")[0],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[0])[0]));
adap_plot.setDropDownViewResource(R.layout.item_drop);
spin_plot.setAdapter(adap_plot);
spin_plot.setSelection(0,true);
adap_status = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showstatus("status",mGlebeService.Showregion("region")[0],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[0])[0],mGlebeService.Showplot("plot",mGlebeService.Showregion("region")[0],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[0])[0])[0]));
adap_status.setDropDownViewResource(R.layout.item_drop);
spin_status.setAdapter(adap_status);
spin_status.setSelection(0,true);
//下面就是每个spinner的点击事件
//然后点击一个,就更新下一个的选择内容
spin_region.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
regionposition = position;
adap_landmark = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[regionposition]));
spin_landmark.setAdapter(adap_landmark);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spin_landmark.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
landmarkposition = position;
adap_plot = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showplot("plot",mGlebeService.Showregion("region")[regionposition],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[regionposition])[landmarkposition]));
spin_plot.setAdapter(adap_plot);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spin_plot.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
plotposition = position;
adap_status = new ArrayAdapter<String>(Glebe_Manage_Activity.this,R.layout.item_select,mGlebeService.Showstatus("status",mGlebeService.Showregion("region")[regionposition],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[regionposition])[landmarkposition],mGlebeService.Showplot("plot",mGlebeService.Showregion("region")[regionposition],mGlebeService.Showlandmark("landmark",mGlebeService.Showregion("region")[regionposition])[landmarkposition])[plotposition]));
spin_status.setAdapter(adap_status);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
item_drop.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:gravity="center"/>
item_select.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
这两个xml文件你就自己设计样式拉,唯一要注意的是要<TextView>在最上面的一层,不然报错