我已将我的资源ID通过意图传递给另一个类。然后我从intent中检索额外的内容并将其存储在int中。
现在我想将int转换为视图或其他东西,以便我可以使用getTag()?我尝试将它分配给ImageView,但不断获取NullPointer
通过:
int resourceId = v.getId();
Intent intent = new Intent(FetchMenu.this,FetchContent.class);
intent.putExtra("ResourceId",resourceId);
startActivity(intent);
收到:
int id;
Intent callingIntent = getIntent();
int getView= callingIntent.getIntExtra("ResourceId", 1);
id = getView;
打印到logcat:
System.out.println("Resource ID: " + id);
Logcat:"Resource ID: 2131099660"
这给了我NullPointer:
View v = (View)findViewById(id);
String str=(String) v.getTag();
System.out.println("Tag : " + str);
由于
答案 0 :(得分:1)
视图来自int类型。因此,您可以将布局作为Extras放入Intent:
final Intent intent = new Intent(this,Activity2.class);
intent.putExtra("layout",R.layout.mylayout);
startActivity(intent);
然后在你的Activity2中:
Bundle bundle = getIntent().getExtras();
final int iLayout = bundle.getInt("layout");
setContentView(iLayout);
答案 1 :(得分:0)
在第一个活动中,您应该将活动连接到包含此视图的布局。
setContentView(R.layout.layout1);
之后你必须传递给第二个活动,不仅要查看id,还要传递这个id有意义的上下文。
所以,在第一个活动中将“(Context)this”放入额外的。
在第二个活动中恢复上下文后:
View view = (View)context.findViewByid(id);