[英]How to change ImageView in fragment from pop up window class?
當我單擊彈出窗口 window ZA2F635D0E0F3874FFF8B581C132E6C7A7Z 中的圖像時,我想更改 ImageView
彈出 class
public class MoodPopUp extends Activity {
ImageView a,b,c,d,e,f,g,h,i;
ImageView main;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mood_picker_popup);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
//Pop Up Window Size
getWindow().setLayout((int) (width*.8),(int)(height*.6));
//Set emoji images on mood imageview
//Main Mood Image View
main = (ImageView) findViewById(R.id.MainMoodimageview);
//Pop Up Picker on Click
a = (ImageView) findViewById(R.id.Aemoji);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
main.setImageResource(R.drawable.smiling);
}
});
}
這是來自另一個片段的 imageview,我想在點擊時更改。
<ImageView
android:id="@+id/MainMoodimageview"
android:layout_width="187dp"
android:layout_height="163dp"
android:layout_marginTop="19dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider3"
android:src="@drawable/ic_baseline_emoji_emotions_24" />
歡迎來到 Stack Overflow,@Enzo。
有幾種方法可以實現您想要的。
實現此目的的傳統方法是在對話框片段中使用接口。
這個問題和一組答案中有一些想法
另一種解決方案是使用共享的 ViewModel。 您的選擇器可以設置 Drawable,您可以在其他活動中使用它。
https://developer.android.com/topic/libraries/architecture/viewmodel
https://developer.android.com/codelabs/kotlin-android-training-view-model#0
如果您使用 go,重要的部分是 ViewModel 路線是確保您的兩個活動或片段等共享相同的 scope。
另一種簡單的方法是使用 Singleton 或 Kotlin object。 如果您只需要一個所有人都可以讀取和寫入的實例,則此方法效果很好。
https://kotlinlang.org/docs/object-declarations.html#object-declarations
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.