2016-11-23 40 views
-4

我想从我的适配器活动开始一个新的活动到另一个活动通过按钮。即时通讯新的Android工作室,我有搜索整个一些主题,我找到了一些解决方案,但仍然没有修复我的代码,他们不断地告诉不同的错误。请帮帮我 。如何通过按钮从ArrayAdapter启动新的活动?

我想通过btn_reserve将其移动到ReserveActivity.java但是当我运行上面的代码,它表示

Error:(54, 28) error: no suitable constructor found for Intent(<anonymous OnClickListener>,Class<ReserveActivity>) constructor Intent.Intent(String,Uri) is not applicable (argument mismatch; <anonymous OnClickListener> cannot be converted to String) 构造Intent.Intent(上下文,类)是不适用 (自变量不匹配;不能被转换为上下文)

所以我的继承人代码

public class mainmodeladapter extends ArrayAdapter<String> { 

private Activity context; 
private final String[] itemname; 
private final Integer[] imgid; 

private Context mContext; 

public mainmodeladapter(Activity context, String[] itemname, Integer[] imgid) { 
    super(context, R.layout.modelmain, itemname); 
     this.context=context; 
     this.itemname=itemname; 
     this.imgid=imgid; 
} 

public View getView(int position,View view,ViewGroup parent) { 
    LayoutInflater inflater=context.getLayoutInflater(); 
    View rowView=inflater.inflate(R.layout.modelmain, null,true); 

    TextView txtTitle = (TextView) rowView.findViewById(R.id.lapangantxt); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    TextView extratxt = (TextView) rowView.findViewById(R.id.hargatxt); 

    txtTitle.setText(itemname[position]); 
    imageView.setImageResource(imgid[position]); 
    extratxt.setText("Rp 150.000/Jam"); 

    return rowView; 
    Button btn_reserve = (Button) rowView.findViewById(R.id.btn_reserve); 
    btn_reserve.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(this, ReserveActivity.class); 
      context.startActivity(i); 
     } 
    }); 
}; 
} 

IVE搜索在另一个线程,它说,我需要把context.startActivity(i)因为它的适配器,怎么当我context.startActivity(i);删除,它开始显示红色亮点

这样做rowView.findViewById(R.id.btn_reserve);如果我删除rowView.findviewById();将开始有红色的亮点,我不知道为什么。我错了“btn”代码吗?它应该在另一个活动中吗? 请帮助我。谢谢

+0

I =新意图(此,ReserveActivity.class)''this'意味着当前类和当前类是'OnClickListener'。您不能将侦听器传递给“Intent”构造函数的第一个参数。这是编译时错误,我不知道为什么你的编译器无法找到它。无论如何,你应该读取错误之前发布到SO,消息是非常清楚的 – Beloo

+0

ive将它改为'(context,ReserveActivity.class)'miracely,它的工作原理,但我不知道为什么当我按下“保留”按钮它崩溃应用程序。无论如何确认如何知道崩溃从何而来?即时通讯真的新调试 –

回答

0

你可以说mainmodeladapter.this作为意图的第一个参数。

+0

我已经尝试过,但仍然没有工作:( –

0

您还应该在第一个意图参数中通过相同的活动环节 t。

btn_reserve.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(context /* note here I am using context*/,ReserveActivity.class); 
      context.startActivity(i); 
     } 
    }); 
在`意图
+0

我尝试添加'context.this',但它说错误找不到符号类上下文 当我做'context.mainmodeladapter.this' mainmodeladapter得到了红色高亮 –

+0

我没有说'context.this',只是添加**上下文**就像我在代码中添加的那样。我说'注意这个',意思是看看,我没有在这里使用'this'但'context.' – mallaudin

+0

你的意思是在我的情况下使用'context.mainmodeladapter'吗?我刚刚尝试过,'mainmodeladapter'现在是红色突出显示 –

相关问题