Построение моего самого первого приложения для Android. Я успешно смог вызвать изображение и текстовый блок из открытого класса. Так,Изменить список просмотров из предыдущего списка просмотров
В DetailFragment, у меня есть это:
public class DetailFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/** Inflating the layout country_details_fragment_layout to the view object v */
View v = inflater.inflate(R.layout.detail_fragment, null);
/** Getting the textview object of the layout to set the details */
TextView tv = (TextView) v.findViewById(R.id.country_details);
ImageView img = (ImageView) v.findViewById(R.id.disco);
// ListView lines = (ListView) v.findViewById(R.id.country_list);
String[] myList = new String[] {"Hello","World","Foo","Bar", "New"};
/** Getting the bundle object passed from MainActivity (in Landscape mode) or from
* CountryDetailsActivity (in Portrait Mode)
* */
Bundle b = getArguments();
/** Getting the clicked item's position and setting corresponding details in the textview of the detailed fragment */
tv.setText("Details of " + Country.name[b.getInt("position")]);
img.setImageResource(DiscoImage.flags[b.getInt("position")]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, ??);
setListAdapter(adapter);
return v;
}
Country.java возвращает эту информацию штраф:
public class Country {
/** Array of countries used to display in CountryListFragment */
static String name[] = new String[] {
"BEYONCÉ","4","I Am... Sasha Fierce", "B'DAY", "Dangerously In Love"
};
}
Discoimage.java возвращает этот штраф:
public class DiscoImage {
static int[] flags = new int[]{
R.drawable.ic_beycd,
R.drawable.ic_4c,
R.drawable.ic_cdiam,
R.drawable.bdaycd,
R.drawable.dilcd,
};
}
На этот момент, когда вы нажимаете элемент списка из предыдущего представления, изображение в следующем представлении изменяется, и поэтому Textv МЭН.
Мне интересно, как мне это сделать со списком? Сделайте Java-файл со строкой, но как данные будут изложены и как она будет вызываться через
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, NameofJavaClass.flags[b.getInt("position")]);
setListAdapter(adapter);
Эй, спасибо за помощь. Я немного растерялся. Легко было изменить текст и изображение с помощью строк, и я хотел бы сделать это для списка. У меня есть обычный адаптер, который вызывает обычные строки в listview, но я бы хотел, чтобы он изменился, как изменение изображения и текста. – HalesEnchanted
вы можете добавить данные в внутренний список адаптеров и вызвать notifyDataChanged(); или вы можете просто создать и назначить новый адаптер. оба должны работать. –
Я сделал пользовательский адаптер, как вы сказали. Теперь я могу извлечь данные из него с помощью операторов switch. Все по-прежнему тот же :( общественный класс AnotherAdapter расширяет ArrayAdapter { частного контекста окончательного контекста; частные окончательный String [] значение; общественного AnotherAdapter (контекст Context, внутр songname, внутр метка, String [] значение) { супер (контекст, R.layout.songname, значения); this.context = context; this.values = values; } –
HalesEnchanted