Всем привет, может кто-нибудь помочь разобраться с кодом (прокомментировать). Что и как работает, для человека в этом деле совершенно темного. Java Android studio.
MAIN ACTIVITY
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.media.session.PlaybackState;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.myapplication.R;
public class MainActivity extends AppCompatActivity {
GridView gridView; // ???
String[] fruitNames = {"", "", "", "", ""}; // String[] используется для объявления массива из нескольких строк
int[] fruitImages = {R.drawable.oranges, R.drawable.apple, R.drawable.strawberry, R.drawable.watermelon, R.drawable.banana, R.drawable.kiwi};
//это массив содержащий ссылки на картинки (контейнер)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // иницилизирует активность
setContentView(R.layout.activity_main); //используется для заполнения окна с помощью пользовательского интерфейса
gridView = findViewById(R.id.gridview); //findViewById примет ID, который вы передадите, и вернет связанное представление как View
CustomAdapter customAdapter = new CustomAdapter(); //создаем адаптер?????????
gridView.setAdapter(customAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long id) {
Intent intent = new Intent(getApplicationContext(), com.example.myapplication.GridItemActivity.class);
intent.putExtra("name", fruitNames[i]);
intent.putExtra("image", fruitImages[i]);
startActivity(intent);
}
});
}
private class CustomAdapter extends BaseAdapter {
@Override
public int getCount() { // должен возвращать количество элементов GridView (картинки)
return fruitImages.length;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup parent) { // должен возвращать элемент, который будет добавлен в GridView. Обычно тут создают и конфигурируют элемент для GridView.
View view1 = getLayoutInflater().inflate(R.layout.row_data, null); //????????
// TextView name = view1.findViewById(R.id.fruits);
ImageView image = view1.findViewById(R.id.images);
//name.setText(fruitNames[i]);
image.setImageResource(fruitImages[i]);
return view1;
}
}
}
GridItemActivity
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.myapplication.R;
public class GridItemActivity extends AppCompatActivity {
TextView name;
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_item);
name = findViewById(R.id.griddata);
image = findViewById(R.id.imageView);
Intent intent = getIntent();
name.setText(intent.getStringExtra("name"));
image.setImageResource(intent.getIntExtra("image", 0));
}
}