Belirli bir Göreli Düzen xml'yi programlı olarak eklemeye çalışıyorum. Bir ImageView, EditText ve bir TextView oluşur. Sorun, başka bir etkinlikten döndükten sonra bu "onActivityResult" yönteminde yapmaya çalışıyorum gibi görünüyor. Bunu başka bir yerde yaptığımda işe yarıyor ve yaratmak istediğim düzen düzgün bir şekilde ortaya çıkıyor (örneğin, "onCreate" ı ve bir düğmeye basmayı denedim), ancak "onActivityResult" öğesi çalışmıyorsa. Orada olmak için ona ihtiyacım var.Göreli Düzenleme programsal olarak gösterilmiyor
Baskılar her iki durumda da başarıyla verilir, hata veya kilitlenme yoktur, ancak düzen görünmeyebilir. Herhangi bir öneri takdir edilir.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="260dip">
<ImageView
android:id="@+id/damagePicture"
android:layout_width="match_parent"
android:layout_height="210dip"
android:scaleType="centerCrop"
android:layout_marginTop="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:src="@drawable/nocar"/>
<EditText
android:id="@+id/orderTextfield"
android:layout_height="40dip"
android:layout_width="match_parent"
android:gravity="left|center"
android:layout_marginLeft="10dip"
android:layout_marginRight="45dip"
android:hint="Enter damage description"
android:textSize="14sp"
android:layout_alignParentLeft="true"
android:textColor="@color/black"
android:textColorHint="@color/gray_vin_search_text"
android:background="@null"
android:singleLine="true"
android:editable="true"
android:layout_below="@+id/damagePicture"/>
<TextView
android:id="@+id/removePicture"
android:layout_width="40dip"
android:layout_height="40dip"
android:text="@string/discardPicture"
android:gravity="center|center"
android:textColor="@color/black"
android:textSize="24sp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:clickable="true"
android:onClick="removePicture"/>
<View
android:id="@+id/bottomLine"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentBottom="true"
android:background="@color/gray_for_line"></View>
</RelativeLayout>
bir buraya alakalı kod parçalarıdır:
Bu
Ben oluşturmak istiyorum xml dosyasıdır Bazı senaryolardapublic void addResultingDamagePicture(String pathToFile) {
System.out.println("ADD RESULTING DAMAGE PICTURE");
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
View damagePictureSet = layoutInflater.from(this).inflate(R.layout.damage_picture_set, picturesCell, false);
((TextView) damagePictureSet.findViewById(R.id.removePicture)).setTypeface(fontAwesome);
TextView remove = (TextView)damagePictureSet.findViewById(R.id.removePicture);
remove.setTypeface(fontAwesome);
File imgFile = new File(pathToFile);
if(imgFile.exists()) {
System.out.println("ADD RESULTING DAMAGE PICTURE - FILE OK");
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inSampleSize = 4;
final Bitmap thebmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath(), opt);
((ImageView) damagePictureSet.findViewById(R.id.damagePicture)).setImageBitmap(thebmp);
picturesCell.addView(damagePictureSet);
} else {
System.out.println("ADD RESULTING DAMAGE PICTURE - NO FILE EXISTS!!!");
}
return;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SHOOT_DAMAGE_PICTURE && resultCode == RESULT_OK) {
final String encodedPicture = data.getStringExtra("PATH_TO_PICTURE");
System.out.println("PICTURE RESULT = " + encodedPicture);
addResultingDamagePicture(encodedPicture);
} else {
System.out.println("ON ACTIVITY RESULT = NOT OK");
return;
}
}
İlk bakışta, görünümünüzü yenilemek için eksiksiniz, cf. http://stackoverflow.com/questions/5991968/how-to-force-an-entire-layout-view-refresh – TAM
Görünümün nereye gittiğini görmek için Hiyerarşi Görüntüleyiciyi deneyebilirsiniz: https://developer.android.com/ tools/help/hierarchy-viewer.html –
'View damagePictureSet = layoutInflater.from (this) .inflat (R.layout.damage_picture_set, picturesCell, true);' yerine View damagePictureSet = layoutInflater.from (this) .inflate (R.layout.damage_picture_set, picturesCell, false); 'yardım? – jaibatrik