我查看了其他似乎如下所示的例子。
在Array Adapter中确保声明了Context
Context context;
public ListViewJobAdapter(Context context, ArrayList jobItemsArrayList) {
super(context, R.layout.tab3_list_row, jobItemsArrayList);
this.context = context;
}
我重写了ListView适配器的GetView。在这里我有一个textView onClick动作,它开始一个额外的新活动。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
textView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intentEditJob = new Intent(context,ActivityJobEdit.class);
intentEditJob.putExtra("JOBID", "TEST");
context.startActivity(intentEditJob);
现在Actvitiy开始了,但Extras没有通过。
Intent intentExtras = getIntent();
String editJobID = intentExtras.getStringExtra("JOBID");
在客户ListView适配器中,如果我在getView之外调用Intent函数,它就可以工作并传递Extra。不确定为什么这在引用上下文时在GetView的onClick中不起作用?现在我将使用在GetView外部调用它的解决方法。
public void callEditActivity(){
Intent intentEditJob = new Intent(context,ActivityJobEdit.class);
intentEditJob.putExtra("TEST", "JOBID");
context.startActivity(intentEditJob);
}
答案 0 :(得分:3)
看起来您与用于存储和检索值的密钥不一致。
putExtra
方法接受键作为第一个参数,值接受第二个参数。
根据你所写的内容,我假设“JOBID”是callEditActivity
中你使用“TEST”作为关键词的关键。
确保您与此保持一致,并且所有内容都将对齐。
要设置额外意图参数,请使用:
intentEditJob.putExtra("JOBID", "TEST");
要检索额外的intent参数,请使用:
String editJobID = intentExtras.getStringExtra("JOBID");
答案 1 :(得分:0)
首先为您的意图值创建一个静态最终字符串:
public static final string result = "result";
public void callEditActivity() {
Intent intentEditJob = new Intent(context,ActivityJobEdit.class);
intentEditJob.putExtra(result, "JOBID");
context.startActivity(intentEditJob);
}
然后叫它:
Intent intentExtras = getIntent();
String editJobID = intentExtras.getStringExtra(previousClass.result);