私は、いくつかの製品に関する情報を表示するアプリを作ったので、私は主要な活動の中にarraylistのブランドを入れてこれを達成し、ユーザーが特定のモデルを選ぶことができるブランドを選択した後、グローバルxmlファイル、および詳細となるStringsとintsを持つ各モデルのクラスは、今では、潜在的に何百もあり、1000を超えるモデルもありますが、これを達成するための簡単な方法はありますか?すべてのデータを1つのクラスに入れてから、それを取り出すのが好きですか?またはそれは物事をより厄介にするでしょうか?ここで達成しようとしているものを簡単に入手する方法はありますか?
私は初心者だと皆さんに知らせるためです。
主な活動は、ブランドのリストを示しています:テスト目的のために
は、私はちょうどリストとの2つのブランドを設定します。
package com.example.ofir.myapplication;
import android.content.Intent;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.example.ofir.myapplication.lists.bmwList;
import com.example.ofir.myapplication.lists.ktmList;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Brands> brands = new ArrayList<>();
brands.add(new Brands("KTM", ContextCompat.getColor(this, R.color.colorOrange)));
brands.add(new Brands("BMW", ContextCompat.getColor(this, R.color.colorPrimary)));
brands.add(new Brands("Suzuki", ContextCompat.getColor(this, R.color.colorPrimary)));
BrandAdapter itemsAdapter = new BrandAdapter(this, brands);
ListView listView = (ListView) findViewById(R.id.brandlist);
listView.setAdapter(itemsAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0) {
Intent intent = new Intent(MainActivity.this, ktmList.class);
startActivity(intent);
}else if (position == 1) {
Intent intent2 = new Intent(MainActivity.this, bmwList.class);
startActivity(intent2);
}
}
});
}
}
各ブランドのモデルのリストを開きます
は、これは私のコードです。
package com.example.ofir.myapplication.lists;
import com.example.ofir.myapplication.R;
import com.example.ofir.myapplication.models.dukeSmall;
import com.example.ofir.myapplication.models.smc;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import static android.media.CamcorderProfile.get;
public class ktmList extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.models_list);
final ArrayList<String> ktmlist = new ArrayList<String>();
ktmlist.add("Duke 125");
ktmlist.add("Duke 200");
ktmlist.add("Duke 390");
ktmlist.add("Duke 690");
ktmlist.add("RC 125");
ktmlist.add("RC 200");
ktmlist.add("RC 390");
ktmlist.add("RC8");
ktmlist.add("SMC-R 690");
ktmlist.add("SMR 990");
ktmlist.add("SuperDuke 990");
ktmlist.add("SuperDuke 1290");
final ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ktmlist);
ListView listView = (ListView) findViewById(R.id.models_list);
listView.setAdapter(itemsAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0) {
Intent intent = new Intent(ktmList.this, dukeSmall.class);
startActivity(intent);
}else if (position == 8){
Intent intent = new Intent(ktmList.this, smc.class);
startActivity(intent);
}
}
});
}
}
とは、私はその仕様で、各モデルのモデルクラスを持って、モデルの例は次のとおりです。
package com.example.ofir.myapplication.models;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.ofir.myapplication.R;
/**
* Created by Ofir on 23-Mar-17.
*/
public class smc extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.info_page);
int cc = 690;
int weight = 150;
int hp = 67;
int topspeed = 180;
ImageView logo = (ImageView) findViewById(R.id.logo_image);
logo.setImageResource(R.drawable.smc);
TextView Displacement = (TextView) findViewById(R.id.displacement_text);
Displacement.setText(cc + "cc");
TextView HP = (TextView) findViewById(R.id.hp_text);
HP.setText(""+hp);
TextView Weight = (TextView) findViewById(R.id.weight_text);
Weight.setText(""+weight);
TextView topSpeed = (TextView) findViewById(R.id.top_speed_text);
topSpeed.setText(topspeed + " km/h");
}
}
は今、私の質問があり、それを達成する簡単な方法はありますか?それぞれのモデルと各モデルのクラスを設定する代わりに、インテントのトン数を設定するのではなく、
データベースを利用することができます。 –
それは同じではありませんか?単にそのプロパティを書くのではなく、データベースからそれらを引き出すのですか? – Skity
アプリの機能は異なって見えないかもしれませんが、コードのメンテナンスを容易にするのに役立ちます。 –