[英]Use Image View to open new activity?
我正在创建一个应用程序,我需要一个图像才能在android studio中打开一个新活动,但它似乎不起作用。 谁能看到下面的代码有任何问题?
public class Menu extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
}
ImageView imgview = (ImageView) findViewById(R.id.table);
imgview.bringToFront();
imgview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Menu.this, Options.class);
startActivity(myIntent);
}
});
}
将ImageView及其代码移到onCreate()方法中。
由于您有一个名为Options.class
的类,因此也存在BitmapFactory.Options.class
一个类,因此请检查您的导入。
请重新排列您的代码,使其看起来像:
public class Menu extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
ImageView imgview = (ImageView) findViewById(R.id.table);
imgview.bringToFront();
imgview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(Menu.this, Options.class);
startActivity(myIntent);
}
});
}
}
确保您的Options类扩展了AppCompatActivity
public class Options extends AppCompatActivity {
**STUFF**
}
确保在AndroidManifiedt.xml中声明了Options
<activity
android:name=".Options
android:theme="@style/AppTheme.NoActionBar">
</activity>
将以下代码添加到您的主要活动中:
public class MainActivity extends ActionBarActivity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView)findViewById(R.id.imageView);
iv.setOnClickListener(new View.OnClickListener(){
public void onClick(View view1){
Intent myIntent = new Intent(MainActivity.this, Options.class);
startActivity(myIntent);
}
});
}
}
不要忘记在Option.class
活动中获得Intent:
public class Options extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
Intent intent0 = getIntent();
}
}
还要在ImageView
XML代码中添加android:clickable:"true"
。
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="156dp"
android:src="@drawable/ss"
android:clickable="true"/>
和Option
应该在Menifest.xml
声明为:
</activity>
<activity android:name=".Options"></activity>
</application>
试试ImageButton而不是ImageView
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton);
imageButton.setImageResource(R.drawable.k);
imageButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent myIntent = new Intent(this, Options.class );
startActivity(myIntent);
}
}
在新的Activity XML中,尝试此操作。 不要忘记放置图像源(android:src =“ @ drawable / k”),否则您将获得Nullpointerexception
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nirmesh.problem1.Options">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageview"
android:src="@drawable/k"
android:layout_centerInParent="true"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.