2014-10-07 117 views
0

我想动态添加微调器到RelativeLayout,但我遇到了问题。 这是我的代码。动态添加微调器到RelativeLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:id="@+id/Relativ" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

</RelativeLayout> 

而且在我的课:

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

    RelativeLayout rl = (RelativeLayout) findViewById(R.id.Relativ); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,1); 
    adapter.add("1"); 
    adapter.add("2"); 
    adapter.add("3"); 
    adapter.add("4"); 
    adapter.add("5"); 

    Spinner list = new Spinner(this); 
    list.setAdapter(adapter); 
    rl.addView(list); 
    } 

但开不运行。我想知道我的代码中有什么问题,以及如何修复它。 我已经在RelativeLayout.addView中使用RelativeLayout参数进行了尝试,并且它不运行。 谢谢。

+0

你说的 “不运行” 是什么意思?不编译?崩溃? – 2014-10-07 22:12:15

+0

应用程序崩溃 – guillocrack 2014-10-07 22:21:39

+0

然后,您应该在此处发布logcat转储,但只能在您自己阅读之后。 – 2014-10-07 22:22:40

回答

1
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    RelativeLayout rl = new RelativeLayout(this); 
    ArrayList<String> arrayList = new ArrayList<String>(); 
    arrayList.add("1"); 
    arrayList.add("2"); 
    arrayList.add("3"); 
    arrayList.add("4"); 
    arrayList.add("5"); 

    Spinner list = new Spinner(this); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_dropdown_item, arrayList); 
    list.setAdapter(adapter); 
    rl.addView(list); 
    setContentView(rl); 
} 
0

main.java

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); 

     adapter.add("1"); 
     adapter.add("2"); 
     adapter.add("3"); 
     adapter.add("4"); 
     adapter.add("5"); 

     final Spinner list= (Spinner) findViewById(R.id.spinner1); 

     list.setAdapter(adapter); 
    } 

main.xml中

<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.prova.MainActivity" > 

    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="28dp" /> 

</RelativeLayout> 

请与您的参数。

+0

我知道我可以在xml中使用微调,但我需要动态添加它。 – guillocrack 2014-10-07 22:29:52

+0

你见过这个问题吗(http://stackoverflow.com/questions/16119841/create-a-spinner-programmatically-android)? – Ellipticat 2014-10-07 22:34:03