ImageView iconStartWorkout = new ImageView(this);
iconStartWorkout.setImageResource(R.mipmap.ic_fitness_center_black_24dp);
ImageView iconNewWorkout = new ImageView(this);
iconNewWorkout.setImageResource(R.mipmap.ic_format_list_numbered_black_24dp);
iconNewWorkout.setClickable(true);
iconNewWorkout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(this,AddDate.class));
}
});
iconStartWorkout是FloatingActionMenu
的一部分。 Android工作室强调并说cannot resolve constructor'Intend [...]'
但是课程AddBase
包含所有内容:
public class AddDate extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_date);
}}
我使用了startActivity( new Intent(this, sth.class));
,它正在其他项目中工作..
编辑xml的1部分
<android.widget.ImageView
android:id="@+id/NewWorkout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_format_list_numbered_black_24dp"/>
和
我改变了mainActivity
ImageView iconNewWorkout = new ImageView(R.id.NewWorkout);
//iconNewWorkout.setImageResource(R.mipmap.ic_format_list_numbered_black_24dp);
但强调R.id.NewWorkout
并说in ImageView cannot be applied to (int)
答案 0 :(得分:1)
试试这个,
iconNewWorkout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this , AddDate.class);
startActivity(i);
//OR
//startActivity(new Intent(MainActivity.this,AddDate.class));
}
});
并检查您的manifest.xml
<activity
android:name=".AddDate"/>
这可能对你有所帮助。
编辑1:
尝试提供
ImageView iconNewWorkout = new ImageView(R.id.YOUR_IMAGEVIEW_ID);
而不是
ImageView iconNewWorkout = new ImageView(this);
答案 1 :(得分:1)
您必须将Context
或Activity
传递给Intent
。当您在this
中使用oncliclListener
时,表示您将onClickListener
传递给Intent
,这是不正确的。如果你在活动中使用这个:
new Intent(YOURACTIVITY.this,AddDate.class);
如果你是片段,你可以使用它:
new Intent(getApplicationContext(),AddDate.class);
编辑:
问题的第二部分是关于定义ImageView
您必须使用findViewById()
方法找到您的观点,如下所示:
ImageView iconNewWorkout =(ImageView) findViewById((R.id.NewWorkout);
答案 2 :(得分:1)
无法解析构造函数&#39; Intend [...]
我认为你的this
有问题。你应该在那里传递你的当前活动名称。
Android 显式意图指定要从活动调用的组件。 你可以用这种方式,
Intent intent = new Intent(Your_Current_class_Name, AddDate.class);
startActivity(intent);