使用 getExtras 和 Intent 传递字符串资源 text/data(Android 应用程序)
Passing String Resource text/data using getExtras and Intent (Android App)
我不知道我想要的东西是否可行(我确定对专家来说是可行的)但我的问题是:
我有一个activity,它有电子设备等的列表视图,已在数组列表中设置。当我单击列表中的一个项目时,它会打开另一个 activity 并使用以下代码显示图像:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_evidence_items);
toolbar = (Toolbar) findViewById(R.id.toolbar);
evidenceItem = (ImageView) findViewById(R.id.imageViewEvidenceItem);
evidenceInfo = (TextView) findViewById(R.id.textViewEvidenceInfo);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
toolbar.setTitle(bundle.getString("EvidenceType"));
if (toolbar.getTitle().toString().equalsIgnoreCase("Main computer unit")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.tower));
}else if (toolbar.getTitle().toString().equalsIgnoreCase("Monitor")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.monitor));
}else if (toolbar.getTitle().toString().equalsIgnoreCase("Keyboard and mouse")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.keyboardmouse));
列表比较长,但我不想让大家感到厌烦。
您会看到我还设置了一个文本视图 (textViewEvidenceInfo),这是我的问题出现的地方。我想知道是否可以设置字符串资源(如下所示)....
<string name="harddisk_txt">Protect from magnetic fields. Place in anti-static bags or in tough paper bags
or wrap in paper and place in aerated bags.</string>
...并将其与捆绑包放在一起,以便将其添加到(可绘制)图像下的 activity。
是加在IF语句中还是需要分开?如果真的可以的话。
具有意图的适配器如下:
lvEvidence = (ListView) findViewById(R.id.lvEvidence);
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(EvidenceTypesActivity.this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.seized_item));
lvEvidence.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(EvidenceTypesActivity.this, EvidenceItemsActivity.class);
intent.putExtra("EvidenceType", lvEvidence.getItemAtPosition(i).toString());
startActivity(intent);
}
});
lvEvidence.setAdapter(mAdapter);
}
希望这对某人有意义。
感谢期待
已编辑:
假设您有以下 strig-array
<string-array name="seized_item">
<item>name1</item>
<item>name2</item>
<item>name3</item>
<item>name4</item>
<item>name5</item>
<item>name...</item>
</string-array>
<string-array name="seized_item_txt">
<item>name1 text: Protect from magnetic fields. </item>
<item>name2 text:</item>
<item>name3 text:</item>
<item>name4 text:</item>
<item>name5 text:</item>
<item>name... text:</item>
</string-array>
在您的点击监听器中输入以下代码:
Intent intent = new Intent(EvidenceTypesActivity.this, EvidenceItemsActivity.class);
intent.putExtra("EvidenceType", lvEvidence.getItemAtPosition(i).toString());
intent.putExtra("EvidenceText", getResources().getStringArray(R.array.seized_item_txt)[i]);
startActivity(intent);
在你的另一个 activity:
evidenceItem.setImageDrawable(...)
evidenceInfo.setText(bundle.getString("EvidenceText"))
----最后一个答案-----
如果我没看错,你可以在意图中添加另一个参数:
Intent intent = new Intent(getBaseContext(), evidenceActivity.class);
intent.putExtra("EvidenceType", evidenceType);
intent.putExtra("text", getString(R.string.harddisk_txt));
startActivity(intent);
然后在下一个 activity:
toolbar.setTitle(getIntent().getStringExtra("EvidenceType"));
String text = getIntent().getStringExtra("EvidenceText");
或者如果您想使用 Bundle 对象:
Intent intent = new Intent(getBaseContext(), evidenceActivity.class);
Bundle b = new Bundle();
b.putString("EvidenceType", evidenceType);
b.putString("text", getString(R.string.harddisk_txt));
intent.putExtras(b);
startActivity(intent);
然后在下一个 activity:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
toolbar.setTitle(bundle.getString("EvidenceType"));
String text = bundle.getString("text")
Text=<%=item["name1"].ToString() %> 在按钮 aspx 中不起作用 Text=<%=item["name1"].ToString() %> 并且不是
我不知道我想要的东西是否可行(我确定对专家来说是可行的)但我的问题是:
我有一个activity,它有电子设备等的列表视图,已在数组列表中设置。当我单击列表中的一个项目时,它会打开另一个 activity 并使用以下代码显示图像:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_evidence_items);
toolbar = (Toolbar) findViewById(R.id.toolbar);
evidenceItem = (ImageView) findViewById(R.id.imageViewEvidenceItem);
evidenceInfo = (TextView) findViewById(R.id.textViewEvidenceInfo);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
toolbar.setTitle(bundle.getString("EvidenceType"));
if (toolbar.getTitle().toString().equalsIgnoreCase("Main computer unit")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.tower));
}else if (toolbar.getTitle().toString().equalsIgnoreCase("Monitor")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.monitor));
}else if (toolbar.getTitle().toString().equalsIgnoreCase("Keyboard and mouse")) {
evidenceItem.setImageDrawable(ContextCompat.getDrawable(EvidenceItemsActivity.this,
R.drawable.keyboardmouse));
列表比较长,但我不想让大家感到厌烦。
您会看到我还设置了一个文本视图 (textViewEvidenceInfo),这是我的问题出现的地方。我想知道是否可以设置字符串资源(如下所示)....
<string name="harddisk_txt">Protect from magnetic fields. Place in anti-static bags or in tough paper bags
or wrap in paper and place in aerated bags.</string>
...并将其与捆绑包放在一起,以便将其添加到(可绘制)图像下的 activity。
是加在IF语句中还是需要分开?如果真的可以的话。
具有意图的适配器如下:
lvEvidence = (ListView) findViewById(R.id.lvEvidence);
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(EvidenceTypesActivity.this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.seized_item));
lvEvidence.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(EvidenceTypesActivity.this, EvidenceItemsActivity.class);
intent.putExtra("EvidenceType", lvEvidence.getItemAtPosition(i).toString());
startActivity(intent);
}
});
lvEvidence.setAdapter(mAdapter);
}
希望这对某人有意义。
感谢期待
已编辑:
假设您有以下 strig-array
<string-array name="seized_item">
<item>name1</item>
<item>name2</item>
<item>name3</item>
<item>name4</item>
<item>name5</item>
<item>name...</item>
</string-array>
<string-array name="seized_item_txt">
<item>name1 text: Protect from magnetic fields. </item>
<item>name2 text:</item>
<item>name3 text:</item>
<item>name4 text:</item>
<item>name5 text:</item>
<item>name... text:</item>
</string-array>
在您的点击监听器中输入以下代码:
Intent intent = new Intent(EvidenceTypesActivity.this, EvidenceItemsActivity.class);
intent.putExtra("EvidenceType", lvEvidence.getItemAtPosition(i).toString());
intent.putExtra("EvidenceText", getResources().getStringArray(R.array.seized_item_txt)[i]);
startActivity(intent);
在你的另一个 activity:
evidenceItem.setImageDrawable(...)
evidenceInfo.setText(bundle.getString("EvidenceText"))
----最后一个答案-----
如果我没看错,你可以在意图中添加另一个参数:
Intent intent = new Intent(getBaseContext(), evidenceActivity.class);
intent.putExtra("EvidenceType", evidenceType);
intent.putExtra("text", getString(R.string.harddisk_txt));
startActivity(intent);
然后在下一个 activity:
toolbar.setTitle(getIntent().getStringExtra("EvidenceType"));
String text = getIntent().getStringExtra("EvidenceText");
或者如果您想使用 Bundle 对象:
Intent intent = new Intent(getBaseContext(), evidenceActivity.class);
Bundle b = new Bundle();
b.putString("EvidenceType", evidenceType);
b.putString("text", getString(R.string.harddisk_txt));
intent.putExtras(b);
startActivity(intent);
然后在下一个 activity:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
toolbar.setTitle(bundle.getString("EvidenceType"));
String text = bundle.getString("text")
Text=<%=item["name1"].ToString() %> 在按钮 aspx 中不起作用 Text=<%=item["name1"].ToString() %> 并且不是