2017-11-14 28 views
1

私はAndroid開発にはかなり新しいです。私は複製を使用しないでくださいonCreate()を知っているが、私はこれを行う方法を知らない。同じレイアウトでsqliteデータベースから2つのスピナーを作成しています。エラー:onCreate(バンドル)メソッドがすでにMainActivityクラスに定義されています

私のコードは次のとおりです。

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 

import java.util.ArrayList; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Create DataHelper object and insert some sample data 
     DataHelper datahelper = new DataHelper(this); 

     datahelper.insertBreed ("Beagle"); 
     datahelper.insertBreed ("Bulldog"); 
     datahelper.insertBreed ("Chow Chow"); 

     // Get sample data from the database and display them in the spinner 
     Spinner spinner = (Spinner) findViewById(R.id.spinnerBreeds); 
     ArrayList<String> list = datahelper.getAllBreeds(); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.text, list); 
     spinner.setAdapter(adapter); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Create DataHelper object and insert some sample data 
     DataHelper2 datahelper2 = new DataHelper2(this); 

     datahelper2.insertAge("1"); 
     datahelper2.insertAge ("2"); 
     datahelper2.insertAge("3"); 

     // Get sample data from the database and display them in the spinner 
     Spinner spinner = (Spinner) findViewById(R.id.spinnerAge); 
     ArrayList<String> list = datahelper2.getAllAge(); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.text, list); 
     spinner.setAdapter(adapter); 
    } 
} 
+0

あなただけの1つの方法でそれをすべて入れて、変数に異なる名前を与える(すなわち 'spinner2') 。私はより記述的な変数名を使用したいと思います。 – codeMagic

答えて

0

には、クラス内で同じメソッドのオーバーライドが2つありません。

これらの2つのスピナーを初期化するコードを、2番目のonCreate()から最初のコードにコピーするだけです。スピナーとアダプターの変数名をに変更し、重複を避ける。 (例:spinner - >/spinnerAgespinnerBreedsdatahelper - >/ageDataHelperbreedsDataHelperadapter - >breedsAdapter/ageAdapter

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

    // Create DataHelper object and insert some sample data 
    DataHelper datahelper = new DataHelper(this); 
    datahelper.insertBreed ("Beagle"); 
    datahelper.insertBreed ("Bulldog"); 
    datahelper.insertBreed ("Chow Chow"); 

    // Get sample data from the database and display them in the spinner 
    Spinner spinnerBreeds= (Spinner) findViewById(R.id.spinnerBreeds); 
    ArrayList<String> list = datahelper.getAllBreeds(); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.text, list); 
    spinnerBreeds.setAdapter(adapter); 

    //Init second spinner 
    DataHelper2 datahelper2 = new DataHelper2(this); 
    datahelper2.insertAge("1"); 
    datahelper2.insertAge ("2"); 
    datahelper2.insertAge("3"); 

    // Get sample data from the database and display them in the spinner 
    Spinner spinnerAge = (Spinner) findViewById(R.id.spinnerAge); 
    ArrayList<String> list2 = datahelper2.getAllAge(); 
    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, R.layout.spinner_layout, R.id.text, list2); 
    spinnerAge.setAdapter(adapter2); 
} 
+0

ありがとう、非常に便利な、私はまた、spinnerAge.setAdapter ...に最後の行を修正しました...しかし、デバイス上のスピナーは両方同じです。 2番目のものは最初のもののように見えます –

+0

UIまたはデータについて同じですか? – nhoxbypass

+0

データ、あなたは品種の間で選択することができます –

0

あなたは二つの方法

あなたのコード内の
protected void onCreate(Bundle savedInstanceState) 

を持っており、あなたがエラーを取得する理由です。

これらのうちの1つを削除し、コードを別の方法に入れる必要があります。

関連する問題