2014-10-07 111 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