我有一个按钮,它是tablerow中的最后一个元素,如下所示:
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginRight="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<ImageView
android:id="@+id/person1_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:tag="@drawable/profile_one"
android:src="@drawable/profile_one"
/>
<TableLayout
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_marginLeft="4dp"
android:orientation="horizontal">
<TableRow android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginRight="2dp"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp">
<TextView android:id="@+id/person1_seek"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/person1_name"
android:hint="@string/person1_name" />
</TableRow>
</TableLayout>
<Button
android:id="@+id/addButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="ShowView" />
</TableRow>
按钮的代码如下所示:
public void ShowView(View view) {
Intent intent = new Intent(this, DisplaySeekAgain.class);
startActivity(intent);
}
按下按钮时,我需要将此布局中的数据发送到新布局,特别是此数据:
机器人:文本= “@串/ person1_name”
来自其中一个TextViews
和此:
来自ImageView的机器人:SRC = “@绘制/ profile_one”
。
我尝试在按钮代码中使用标记,如下所示:
String text_tag = view.getTag().toString();
intent.putExtra(EXTRA_NAME, text_tag);
这确实有效,但我无法弄清楚如何从ImageView发送图像。
有没有办法发送它们?
谢谢!
答案 0 :(得分:2)
您可以在图像视图中将可绘制ID设置为标记,并通过意图将其作为额外活动发送给其他活动。
public void ShowView(View view) {
Intent intent = new Intent(this, DisplaySeekAgain.class);
int drawableId = (Integer) myImageView.getTag();
String textTag = (String) view.getTag();
intent.putExtra(EXTRA_NAME, text_tag);
intent.putExtra(EXTRA_DRAWABLE_ID, drawableId);
startActivity(intent);
}
答案 1 :(得分:1)
假设您正在谈论的图像不是可绘制资源,就像您将Bitmap
作为附加内容传递一样,您也可以传递图像(位图)。所以,从ImageView
获取BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
,如下所示:
Bitmap
由于intent.putExtra(IMAGEVIEW_TAG, bitmap)
实现了Parcelable,你可以把它放在像
Bitmap
只是一个建议,如果TransactionTooLarge
太大,您将开始遇到this.cartService.list().subscribe(
data => {
console.log(data);
this.cartData = data.cart;
err => {
console.log(err);
});
例外情况,特别是如果您定位API level 25(Android N设备)。您可能需要考虑将图像存储到数据库或其他不涉及传递大对象的方法,例如创建一个保留对象的单例类。
如果它是一个可绘制的资源,你可以参考艾哈迈德的回答。