0

プログラムで別のクラスのオブジェクトのリストを作成しようとしています。リスト内の特定のオブジェクトにアクセスし、そのオブジェクトを使用してクラスからデータを取得できるようにしたいと考えています。オブジェクトを作成する元のクラスは次のとおりです。

public class objectdata extends Activity {

    int number=0;
    String word="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }


    public objectdata(int num, String word){

        number = num;
        word = word;

    }
}

オブジェクトがリストに追加され、オブジェクトにアクセスしたいクラスは次のとおりです。

public class MainActivity extends Activity {



    TextView tv;
    ArrayList<Object> objarray = new ArrayList<Object>(2);

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


    public void makeObjects(){

        //For loop creates two objects and adds them to the list
        for(int i = 0; i < 3; i++) {

            int number=1;
            String word="One";
            number++;

            objectdata o = new objectdata(number, word);
            objarray.add(o);
        }


        //THIS IS WRONG!
        //Access the second object in the list, so as to access the value in number
        objectdata o = objarray.get(1);
        tv.setText(o.number.toString());


    }

}

一番下は、インデックス 1 のオブジェクトにアクセスしようとしたため、作成された 2 番目のオブジェクトです。オブジェクトを使用してクラスから数値の値を取得し、それをテキスト ビューに保存して、動作を確認できるようにします。 . 基本的に、オブジェクトを使用してデータを保存し、これらのオブジェクトを配列リストに保存しようとしています。私はこの時点で完全に立ち往生しています。

4

1 に答える 1

1

独自のクラスのオブジェクトを 内に格納する場合はArrayList、次の宣言を変更します。

ArrayList<Object> objarray = new ArrayList<Object>(2);

ArrayList<objectdata> objarray = new ArrayList<objectdata>(2);

その後、コードが機能するはずです。ちなみに、objectdataはクラスの名前として適切ではありません。命名規則によると、適切な名前は大文字で始まり、 camel-case: を使用する必要がありますObjectData。お役に立てれば。

于 2013-03-13T07:32:52.097 に答える