Я хочу создать ListView, элементы которого во втором действии открывают разные снимки (когда они выбраны).Добавление активности в ListView
Я сделал некоторые из них, но не мог понять, как писать коды для отображения разных изображений во втором действии.
Любая помощь приветствуется.
Вот что я сделал до сих пор:
MainActivity.java
public class MainActivity extends AppCompatActivity {
ListView listView;
String[] country = {
"India",
"France",
"Germany",
"Japan",
"The US",
"Spain",
"Brazil",
"Korea"
};
Integer[] countryFlag = {
R.drawable.pic1,
R.drawable.pic2,
R.drawable.pic3,
R.drawable.pic4,
R.drawable.pic5,
R.drawable.pic6,
R.drawable.pic7,
R.drawable.pic8,
};
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
CustomListAdapter adapter = new CustomListAdapter(this, country, countryFlag);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, NextScreen.class);
intent.putExtra("position", position);
intent.putExtra("country", country);
intent.putExtra("countryFlag", countryFlag);
startActivity(intent);
}
});
}
}
CustomListAdapter.java
public class CustomListAdapter extends ArrayAdapter<String> {
Activity context;
String[] country;
Integer[] countryFlag;
static class ViewHolder{
public ImageView img;
public TextView txt;
}
public CustomListAdapter(Activity context, String[] country, Integer[] countryFlag) {
super(context, R.layout.second_layout, country);
this.context=context;
this.country=country;
this.countryFlag=countryFlag;
}
public View getView (int position, View view, ViewGroup parent) {
View row = view;
if (row == null) {
LayoutInflater inflater = context.getLayoutInflater();
row = inflater.inflate(R.layout.second_layout, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.img = (ImageView) row.findViewById(R.id.img);
viewHolder.txt = (TextView) row.findViewById(R.id.txt);
row.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) row.getTag();
holder.txt.setText("The country of " + country[position]);
holder.img.setImageResource(countryFlag [position]);
return row;
}
}
NextScreen.java
общественного класса NextScreen расширяет активность {
String[] position;
String[] country;
int countryFlag;
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
setContentView(R.layout.third_layout);
Intent intent = getIntent();
position = intent.getStringArrayExtra("position");
country = intent.getStringArrayExtra("country");
countryFlag = intent.getExtras().getInt("countryFlag");
}
}
[Не по теме] вы можете упростить отображение изображений. Вместо создания нового действия вы можете создать простой диалог «setContentView» с завышенным представлением и добавить ресурсы к этому представлению и просто показать его. – PedroHawk