【问题标题】:Have two image buttons on the same activity在同一个活动上有两个图像按钮
【发布时间】:2016-04-27 21:50:36
【问题描述】:

我想要的是打开我的应用并单击图像按钮,这会将我带到另一个带有不同图像按钮的活动。但是,当我运行它时,这两个图像同时出现在两个活动上。谁有线索?

ImageButton imagebtn2 = (ImageButton) findViewById(R.id.imagebtn2);
        imagebtn2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {


                Intent intent = new Intent
                        (Scrape.this, MainActivity.class);
                startActivity(intent);
            }
        });

这是我的代码,MainActivity 是相同的代码,只是名称不同。下面是我的清单。

 <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".Scrape"
            android:label="@string/app_name1"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这是我的 xml。

<ImageButton
    android:id="@+id/imagebtn1"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_marginLeft="15dp"
    android:src="@drawable/got" />
<ImageButton
    android:id="@+id/imagebtn2"
    android:layout_width="70dp"
    android:layout_height="80dp"
    android:layout_marginLeft="15dp"
    android:src="@drawable/timetable" />

主活动*

public class MainActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageButton imagebtn1 = (ImageButton) findViewById(R.id.imagebtn1);
        imagebtn1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {


                Intent intent = new Intent
                        (MainActivity.this, Scrape.class);
                startActivity(intent);
            }
        });
    }

【问题讨论】:

  • 对于您希望在单击按钮后触发的第二个活动,您应该从清单中删除意图过滤器标签。所以 onstart 只会启动一项活动
  • 我将它们从刮擦部分移除,但它仍然关闭,有什么线索吗?

标签: android android-activity


【解决方案1】:

原因是这样的:

<ImageButton
android:id="@+id/imagebtn1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginLeft="15dp"
android:src="@drawable/got" />

<ImageButton
android:id="@+id/imagebtn2"
android:layout_width="70dp"
android:layout_height="80dp"
android:layout_marginLeft="15dp"
android:src="@drawable/timetable" />

您在同一个布局文件中有两个图像按钮。

如果您想让这两个在不同的活动中,那么您可以创建第二个布局并在其中放置一个图像按钮,然后将第一个图像按钮保留在第一个布局文件中。

如上面评论中所述,您希望一个活动成为应用程序中的启动器活动。

我希望这会有所帮助!

【讨论】:

  • 好吧,它去掉了一个按钮,但是当我点击它时,它会停止应用程序,知道原因是什么吗?
  • @DylanB: logcat 还是调试器没告诉你?
  • 它太大而无法发布,它说错误在第 33 行,imagebtn2.setOnClickListener(new View.OnClickListener() {
  • 您是否从布局中删除了 imagebtn2...?
  • 是的,它在 content_main 中,然后我创建了一个名为 scrape 的 xml 并将其放入其中
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
相关资源
最近更新 更多