单击第二个按钮时的操作
Posted
技术标签:
【中文标题】单击第二个按钮时的操作【英文标题】:Action on Click second button 【发布时间】:2016-08-03 00:41:58 【问题描述】:我有 9 个按钮,我需要制作 9 个页面。每个按钮都需要在单击时导航到自己的页面。其中 1 人需要导航到网站而不是他自己的活动。这样就完成了,并且已经可以了。
现在我需要为按钮创建一个活动,以便在单击时导航到该按钮。一旦我这样做了,我就知道该怎么做,我可以对其他按钮重复这一点。我有下面列出的代码,以了解我的主要活动是什么样的。那是导航到网站的按钮的代码。如果有人可以向我介绍在哪里放置新代码以及如何放置它,将不胜感激。我对此很陌生,所以这对你们很多人来说可能是一个简单的问题。
我知道您也必须更改清单中的一些代码,但我想我可以解决那个问题,只是 Mainactivity 是问题..
package com.example.rodekruis;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
public class MainActivity extends Activity
private static Button button_sbm;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OnClickButtonListener();
public void OnClickButtonListener()
button_sbm = (Button)findViewById(R.id.button2);
button_sbm.setOnClickListener(
new View.OnClickListener()
@Override
public void onClick(View v)
Uri uri = Uri.parse("https://www.rkz.nl/nieuws_agenda_nieuws");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
);
【问题讨论】:
您可以为此使用 webview 并在该 webview 上加载 url :) 那是什么意思?我已经完成了 webview 的事情,现在我需要另一个按钮来激活另一个点击活动,而不是网站。 我没有收到你的问题。请详细说明或放图片。 这意味着您必须通过单击另一个按钮来打开其他活动? @koen Hilarius 我有 9 个按钮。我在我的主要活动中拥有的代码(如上所示)用于 9 个按钮中的 1 个。此按钮将您带到一个网页。其他 8 个按钮,我想用它们打开另一个活动。 【参考方案1】:您可以创建一个通用函数以在用户单击按钮时触发并检查所单击按钮的 ID。
例子:
public void navigate(View v)
int id = view.getId();
Intent intent;
if (id == R.id.button1)
Uri.parse("https://www.rkz.nl/nieuws_agenda_nieuws1");
intent = new Intent(Intent.ACTION_VIEW, uri);
else if(id == R.id.button2)
intent = new Intent(MainActivity.this, ActivityButton2.class);
else if(id == R.id.button3)
intent = new Intent(MainActivity.this, ActivityButton3.class);
//Repeat for every button
startActivity(intent);
并在调用该函数的按钮中设置onclick属性。
例子:
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:text="Button1"
android:onClick="navigate" />
在 AndroidManifest.xml 中声明您的新活动
例子:
<activity
android:name=".ActivityButton2"
android:label="ActivityButton2" >
</activity>
<activity
android:name=".ActivityButton3"
android:label="ActivityButton3" >
</activity>
【讨论】:
可能还不够清楚。我希望其他 8 个按钮打开一个新活动,而不是去一个网站。我已经用 1 个按钮完成了,其他人必须去他们自己的活动。只是我已经有了一些代码,所以我不知道该把新代码放在哪里以及如何结束和打开它等等。 编辑启动活动【参考方案2】:我认为你应该花点时间阅读Basics First app,特别是Starting Activity
要回答您的问题,您需要声明 8 个新活动(如果每个按钮都有特定任务)或 1 个新活动(如果所有按钮导致类似内容不同格式或其他内容)
假设它是第二种情况,因此您创建一个新活动,即 ActivityB(在 android 中,您必须在 Manifest <activity android:name=".ActivityB"/>
中注册您正在使用的所有活动)。下面是开始该活动的代码
Intent intent = new Intent(MainActivity.this, ActivityB.class);
startActivity(intent);
所以就您的代码而言,它应该如下所示
public class MainActivity extends Activity implements View.OnClickListener
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
findViewById(R.id.button4).setOnClickListener(this);
findViewById(R.id.button5).setOnClickListener(this);
findViewById(R.id.button6).setOnClickListener(this);
findViewById(R.id.button7).setOnClickListener(this);
findViewById(R.id.button8).setOnClickListener(this);
findViewById(R.id.button9).setOnClickListener(this);
@Override
public void onClick(View v)
Intent intent = null;
switch (v.getId())
case R.id.button1:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button2:
Uri uri = Uri.parse("https://www.rkz.nl/nieuws_agenda_nieuws");
intent = new Intent(Intent.ACTION_VIEW, uri);
break;
case R.id.button3:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button4:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button5:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button6:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button7:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button8:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
case R.id.button9:
intent = new Intent(MainActivity.this, ActivityB.class);
break;
startActivity(intent);
【讨论】:
谢谢。我知道这是非常基本的,我已经用 1 个按钮完成了。这只是因为我现在已经有一些代码用于 1 个引用网页的按钮,我认为这有点像,是什么让我很难知道将新代码放在哪里。如果你能告诉我在哪里可以开始输入新代码,我必须跳过多少个“”才能开始输入新代码 你先生,才是真正的mvp。非常感谢!【参考方案3】:首先你必须创建新的 WebViewActivity 并在这个 xml 类中放置这些代码
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_
android:layout_
/>
并在您的新活动类中放置此代码。
public class WebViewActivity extends Activity
private WebView webView;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setjavascriptEnabled(true);
webView.loadUrl("https://www.rkz.nl/nieuws_agenda_nieuws");
现在点击按钮打开这个 WebViewActivity。
public void OnClickButtonListener()
button_sbm = (Button)findViewById(R.id.button2);
button_sbm.setOnClickListener(
new View.OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(context, WebViewActivity.class);
startActivity(intent);
);
【讨论】:
以上是关于单击第二个按钮时的操作的主要内容,如果未能解决你的问题,请参考以下文章
单击第一个按钮时,它变为突出显示,单击第二个,第二个突出显示,第一个变为正常