Отфильтровать список java

285
15 мая 2018, 23:40

Приложение состоит из нескольких активностей. Приложение - это интернет-магазин. Как реализовать следующую функию.

В первом активити пользователь выбирает пареметры фильтрации общего списка девайсов (в данном примере это цвет), во втором - отображается уже отфильтрованный список существующих девайсов ( смартфоны, планшеты и т.д.), которые имеют такие цвета.

Дальше при нажатии на одну из позиций открывается описание девайса в третьем активити ( то есть цвет и общие характеристики )

Вот код, который есть

public class Filter_activity extends Activity implements 
View.OnClickListener {
ListView Filtering;
String[] Filter;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter_activity);
Filtering = findViewById(R.id.Filtering);
Filtering.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.Filter,
android.R.layout.simple_list_item_multiple_choice);
Filtering.setAdapter(adapter);
Button button_2 = findViewById(R.id.button_2);
button_2.setOnClickListener(this);
Filter = getResources().getStringArray(R.array.Filter);
}

public void onClick(View v) {
switch (v.getId()) {
case R.id.button_2:
Intent intent = new Intent(this, Filter_activity.class);
startActivity(intent);
break;
}
}

2 активити

public class Gadgets_activity extends AppCompatActivity {
ListView Gadget_list;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gadgets_activity);
Gadget_list = findViewById(R.id.Gadget_list);
String[] Gadget = getResources().getStringArray(R.array.Gadget);
ArrayAdapter <String> adapter = new ArrayAdapter <String> (this, 
android.R.layout.simple_list_item_1, Gadget);
Gadget_list.setAdapter(adapter);
Gadget_list.setOnItemClickListener
(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Intent intent = new Intent();
intent.setClass(Gadgets_activity.this, Discription_activity.class);
intent.putExtra("title", position);
startActivity(intent);
}
});
}
}

3 активити

public class Discription_activity extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_discription_activity);
WebView webView = findViewById(R.id.webView_1);
Intent intent = getIntent();
String resName = "n" + intent.getIntExtra("title", 0);
Log.i("name", resName);
Context context = getBaseContext(); 

String text = readRawTextFile(context, 
getResources().getIdentifier(resName,
"raw", "Shop_application"));
webView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);
}
private String readRawTextFile(Context context, int resId)
{
InputStream inputStream = context.getResources().openRawResource(resId);
InputStreamReader inputReader = new InputStreamReader(inputStream);
BufferedReader buffReader = new BufferedReader(inputReader);
String line;
StringBuilder builder = new StringBuilder();
try {
while (( line = buffReader.readLine()) != null) {
builder.append(line);
builder.append("\n");   

В общем нужен совет, возможно с примером кода

READ ALSO
Android Studio, запретить вызов Toast поверх другого

Android Studio, запретить вызов Toast поверх другого

У меня есть метод, который вызывает Toast и отображает какую-то строку, но если быстро его вызывать, то сообщения накладываются поверх друг друга,...

213
Joomla 3.8.2 в куске кода в template.css не видит margin

Joomla 3.8.2 в куске кода в template.css не видит margin

Пишу я значит шаблон для сайта и столкнулся с такой проблемой: два последних margin ни в какую не хотят работать, прошарил туеву хучу форумов...

255
Создание &ldquo;зоны невидимости&rdquo; для элемента html

Создание “зоны невидимости” для элемента html

Мне нужно, что бы html элемент исчезал в определённом месте (если он находится на верхней половине страницы)Можно ли создать такую "зону невидимости"...

208
Как увеличить сочность цвета (scss)?

Как увеличить сочность цвета (scss)?

Допустим имеется цвет #ff7fa1, как средствами scss:

237