当前位置: 首页 > 知识库问答 >
问题:

如何动态重复现有xml旋转程序

叶文博
2023-03-14

我有一个XML文件:my_form.XML(被删节以显示相关视图)。旋转器由strings.xml中的字符串数组填充

<?xml version="1.0" encoding="utf-8"?>
 <ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:orientation="vertical" >
<LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >



    <Spinner
        android:id="@+id/task"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/task_array"
        android:prompt="@string/task" />

    <TextView android:id="@+id/addTask"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"               
       android:text="Add another task"
       android:onClick="onClick"                
       android:clickable="true"/>




</LinearLayout>
</ScrollView> 
public class MyFormActivity extends FragmentActivity implements
                OnClickListener {



        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.my_form);


        final Spinner spinnerTask = (Spinner) findViewById(R.id.task);
                ArrayAdapter<CharSequence> adapter_task = ArrayAdapter
                        .createFromResource(this, R.array.task_array,
                                android.R.layout.simple_spinner_item);
                 spinnerTask.setOnItemSelectedListener(new OnItemSelectedListener() {
                    public void onItemSelected(AdapterView<?> parent, View v, int pos,
                            long row) {
                        int taskChoice = spinnerTask.getSelectedItemPosition();
                        SharedPreferences sharedPref = getSharedPreferences("FileName",
                                0);
                        SharedPreferences.Editor prefEditor = sharedPref.edit();
                        prefEditor.putInt("taskChoiceSpinner", taskChoice);
                        prefEditor.commit();
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {
                        // TODO Auto-generated method stub

                    }
                });



        }
    View tvAddTask = (TextView) findViewById(R.id.addTask);   
            tvAddTask.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) { 
    //Here I want add another instance of the spinner and text view above
    }

    }

共有1个答案

华阳秋
2023-03-14

试试这个

1-编辑my_form.xml到此

<?xml version="1.0" encoding="utf-8"?>
 <ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:orientation="vertical" >
    <LinearLayout
            android:id="@+id/LinearLayout01"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    </LinearLayout>
</ScrollView> 

2-创建新的布局xml文件text_view.xml并将其放入其中

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"               
       android:text="Add another task"                
       android:clickable="true"/>
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/task_array"
        android:prompt="@string/task" />

4-像这样编辑代码

public class MyFormActivity extends FragmentActivity implements  OnClickListener {

        private LinearLayout linear;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.my_form);

            linear = (LinearLayout) findViewById(R.id.LinearLayout01);
            addNewView();
         }    

    private void addNewView(){
        Spinner spinnerTask = View.inflate(this, R.layout.spinner_view, null);
        TextView tvAddTask = View.inflate(this, R.layout.text_view, null); 

        linear.addView(spinnerTask);
        linear.addView(tvAddTask);

                 spinnerTask.setOnItemSelectedListener(new OnItemSelectedListener() {
                    public void onItemSelected(AdapterView<?> parent, View v, int pos,
                            long row) {
                        int taskChoice = pos;
                        SharedPreferences sharedPref = getSharedPreferences("FileName",
                                0);
                        SharedPreferences.Editor prefEditor = sharedPref.edit();
                        prefEditor.putInt("taskChoiceSpinner", taskChoice);
                        prefEditor.commit();
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {
                        // TODO Auto-generated method stub

                    }
                });

        }

            tvAddTask.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) { 
                //Here I want add another instance of the spinner and text view above
                    addNewView();
                }
        });
}
}

希望这能帮到你。

 类似资料:
  • 使用此代码执行asynctask之前,在progressdialog中显示旋转动画 ProgressDialog pDialog=ProgressDialog.show(getActivity(),null,null,true,false);pDialog.SetContentView(r.Layout.Loading); 这是xml

  • 我在熊猫的旋转上有点困难。我正在处理的(日期、位置、数据)如下所示: 基本上,我试图在位置上进行枢轴,以获得如下的数据frame: 因为我有一个#数据列,我想要透视(不想把每个列都作为参数列出)。我相信在默认情况下,pivot将透视DataFrame中的其余列。谢了。

  • 我试图动态地将值加载到我的旋转器中,但是在这里我得到一个错误“this,android.r.layout.simple_spinner_item,colors”错误是: 错误:(109,52)错误:找不到合适的ArrayAdapter(GuestListFragment,int,String[])构造函数ArrayAdapter。ArrayAdapter(Context,int,int)不适用(参

  • 本文向大家介绍flutter RotationTransition实现旋转动画,包括了flutter RotationTransition实现旋转动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了flutter RotationTransition实现旋转动画的具体代码,供大家参考,具体内容如下 flutter 动画状态监听器 AnimationController Animati

  • 问题内容: 我想-使用Python和Qt4– 旋转QPushButton(或至少它的文本),使其可以垂直站立。我在网上看过一些文档,但是我从中没多大意义- 它在C语言中,而且我是C文盲。 根据我的阅读,需要重新实现paintEvent()处理程序,实例化和旋转QPainter()。但是我不知道怎么为我只需要的一个QString或QPushButton做到这一点。我假设QPaintEvent会像信号

  • 给定一个由整数和一个数字组成的数组,,对该数组执行左旋转。然后将更新后的数组打印为单行空格分隔的整数。 示例输入: 如何使用更少的内存来解决这个问题?