Android новичок здесь.Я пытаюсь настроить действие для отображения выбранного изображения.Основой этого кода является Hello, Android 3-е издание (Pragmatic Programmer), которое я пытался изменить.
По сути, я хочу иметь возможность нажимать кнопку в одном действии и запускать другоедействие, которое изменяет макет для отображения изображения, связанного с этой кнопкой.У меня есть несколько кнопок, и я хочу, чтобы каждая кнопка отображала различное изображение.
файлов (упрощенный код путем удаления pic3 -...):
main.xml: макет для двух кнопок (pic1 и pic2)
Main.java: содержит onclicklistener для кнопок - намерения w / extras (имя файла для изображения)
Viewer.java: по умолчанию создаетсяeclipse, цель состоит в том, чтобы установить новый макет setContentView (R.layout.viewer);
viewer.xml: макет для ImageView
Я получил строки, хранящиеся в strings.xml, для работы (я создаюстрока в eclipse со значением @ drawable / pic1 и присваивает ей имя imagename, чтобы я мог вызвать @ string / imagename для src ImageView в viewer.xml).
Однако я узнал изпоиск и чтение на этом форуме того, что я не могу изменить значения strings.xml из действия (моя первоначальная идея состояла в том, чтобы в Viewer.java было несколько строк кода, которые бы изменили строку imagename на то, что было переданоДополнительные сведения.
Я нашел этот пост (/2719620/android-peredat-stroku-iz-deyatelnosti-v-maket), где кто-то пытался сделать то же самое с TextView, но я пробовал этот маршрут и продолжаю получать синтаксические ошибки в этих строках.
Я действительно застрял.Есть идеи?Спасибо!
main.java
public class Main extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// click listeners
View pic1Button = findViewById(R.id.pic1_button);
pic1Button.setOnClickListener(this);
View pic2Button = findViewById(R.id.pic2_button);
pic2Button.setOnClickListener(this);
}
// ...
public void onClick(View v) {
switch (v.getId()) {
case R.id.pic1_button:
Intent l = new Intent(this, Viewer.class);
l.putExtra("imagefilename", "pic1filename");
startActivity(l);
break;
case R.id.pic2_button:
Intent i = new Intent(this, Viewer.class);
i.putExtra("imagefilename", "pic2filename");
startActivity(i);
break;
}
}
}
viewer.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src='@string/imagename'
android:scaleType="matrix">
</ImageView>
</FrameLayout>