繁体   English   中英

使用图像视图打开新活动?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM