Android 如何设置两个xml';如果我选择一个选项,我必须得到一个xml,反之亦然?
如果我在customertype微调器(spn_cust)中选择“新客户”,我必须显示一个包含按钮、微调器、EditText、textview的视图。如果我选择“现有客户”,我必须获得另一个视图约束按钮EditText。 这怎么可能?我应该在选择一个选项时隐藏一个xml吗?以编程方式如何解决这个问题Android 如何设置两个xml';如果我选择一个选项,我必须得到一个xml,反之亦然?,android,xml,view,Android,Xml,View,如果我在customertype微调器(spn_cust)中选择“新客户”,我必须显示一个包含按钮、微调器、EditText、textview的视图。如果我选择“现有客户”,我必须获得另一个视图约束按钮EditText。 这怎么可能?我应该在选择一个选项时隐藏一个xml吗?以编程方式如何解决这个问题 pncustomertype.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
pncustomertype.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
//String item = spncustomertype.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
pncustomertype.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数位置,长arg3){
//String item=spncustomertype.getItemAtPosition(position).toString();
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
有许多可用的解决方案:
findViewbyID
和setVisibility
include
标记、setVisibility
组合LayoutInflater
为每个xml文件充气并按代码添加有许多可用的解决方案:
findViewbyID
和setVisibility
include
标记、setVisibility
组合LayoutInflater
为每个xml文件充气并按代码添加有许多可用的解决方案:
findViewbyID
和setVisibility
include
标记、setVisibility
组合LayoutInflater
为每个xml文件充气并按代码添加有许多可用的解决方案:
findViewbyID
和setVisibility
include
标记、setVisibility
组合LayoutInflater
为每个xml文件充气并按代码添加如果与元素(即Button、edittext等)关联的操作因所选选项(新客户或现有客户)而异,则最好创建两个不同的视图类View1(包含Button、微调器、edittext、Textview)和View2(包含Button、edittext)
公共类视图1扩展了RelativeLayout{
//把你的代码和使用
//视图=布局更平坦。充气(R.layout.YOUR_布局,this);充气布局
}
如果与元素(即Button、edittext等)相关的操作因所选选项(新客户或现有客户)而异,则最好创建两个不同的视图类View1(包含Button、微调器、edittext、Textview)和View2(包含Button、edittext)
公共类视图1扩展了RelativeLayout{
//把你的代码和使用
//视图=布局更平坦。充气(R.layout.YOUR_布局,this);充气布局
}
如果与元素(即Button、edittext等)相关的操作因所选选项(新客户或现有客户)而异,则最好创建两个不同的视图类View1(包含Button、微调器、edittext、Textview)和View2(包含Button、edittext)
公共类视图1扩展了RelativeLayout{
//把你的代码和使用
//视图=布局更平坦。充气(R.layout.YOUR_布局,this);充气布局
}
如果与元素(即Button、edittext等)相关的操作因所选选项(新客户或现有客户)而异,则最好创建两个不同的视图类View1(包含Button、微调器、edittext、Textview)和View2(包含Button、edittext)
公共类视图1扩展了RelativeLayout{
//把你的代码和使用
//视图=布局更平坦。充气(R.layout.YOUR_布局,this);充气布局
}
您可以通过在xml和代码中设置可见性来实现。
包com.example.user.spinnerapp;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.List;
公共类MainActivity扩展了活动{
私人按钮;
私人纺纱机;
私人编辑文本;
私有文本视图文本视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终列表SpinneArray=新的ArrayList();
添加(“新客户”);
添加(“现有客户”);
ArrayAdapter适配器=新的ArrayAdapter(
这个,android.R.layout.simple\u微调器\u项目,微调阵列);
//setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
最终微调器sItems=(微调器)findViewById(R.id.Spinner);
按钮=(按钮)findViewById(R.id.button);
微调器=(微调器)findViewById(R.id.spinner2);
editText=(editText)findViewById(R.id.editText);
textView=(textView)findViewById(R.id.textView);
setAdapter(适配器);
sItems.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父视图、视图视图、内部位置、l
You can do it by setting visibilities in xml and code.
<RelativeLayout 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:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
tools:context=".MainActivity">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/button"
android:layout_below="@+id/spinner"
android:layout_alignParentStart="true"
android:visibility="gone"/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner2"
android:layout_below="@+id/button"
android:layout_alignParentStart="true"
android:visibility="gone"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:text="edit_Text"
android:layout_below="@+id/spinner2"
android:layout_alignParentStart="true"
android:visibility="gone"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:visibility="gone"/>
</RelativeLayout>
package com.example.user.spinnerapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity{
private Button button;
private Spinner spinner;
private EditText editText;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final List<String> spinnerArray = new ArrayList<>();
spinnerArray.add("New Customer");
spinnerArray.add("Existing Customer");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray);
// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
final Spinner sItems = (Spinner) findViewById(R.id.spinner);
button = (Button)findViewById(R.id.button);
spinner = (Spinner)findViewById(R.id.spinner2);
editText = (EditText)findViewById(R.id.editText);
textView = (TextView)findViewById(R.id.textView);
sItems.setAdapter(adapter);
sItems.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//String selected = spinnerArray.get(position);
String selected = sItems.getSelectedItem().toString();
if (selected.equals("New Customer")) {
button.setVisibility(View.VISIBLE);
spinner.setVisibility(View.VISIBLE);
editText.setVisibility(View.VISIBLE);
textView.setVisibility(View.VISIBLE);
}
else if(selected.equals("Existing Customer")){
spinner.setVisibility(View.INVISIBLE);
textView.setVisibility(View.INVISIBLE);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}