私はこのアンドロイドのものにはかなり慣れていませんが、ボタンを押すと特定の URL に移動できる (最適化されたバージョンの Web サイトに移動する) 小さなアプリを構築しています。しかし、問題が発生しました。アプリケーションは AVD に準拠してロードされますが、応答を提供する唯一のボタンは最初のボタンであり、生成される応答は (残念ながら、MyApplication が停止しました) というポップアップ エラー メッセージであり、アプリケーションを閉じます。他のボタンをクリックしても反応しません。以下のコードを参照してください。
package wag.cymal.libraryportal.welshlibraries;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.graphics.*;
import android.graphics.drawable.Drawable;
/**
* Main Activity will deal with all possible functionality
* @author Daniel Drave
*
*/
@SuppressWarnings("unused")
public class MainActivity extends Activity implements OnClickListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button libButton1 = (Button) findViewById(R.id.button1); //giving buttons onClickListener will track for user touches
libButton1.setOnClickListener(this);
Button libButton2 = (Button) findViewById(R.id.button2); // ""
libButton2.setOnClickListener(this);
Button libButton3 = (Button) findViewById(R.id.button3); // ""
libButton3.setOnClickListener(this);
Button libButton4 = (Button) findViewById(R.id.button4); // ""
libButton4.setOnClickListener(this);
Button libButton5 = (Button) findViewById(R.id.button5); // ""
libButton5.setOnClickListener(this);
}
/**
* onClick is a required method of OnClickListener and deals with the switch case statement governing what happens depending on
* what button you click.
*/
public void onClick(View v) {
switch (v.getId())
{
case R.id.button1: method1();
break;
case R.id.button2: method2();
break;
case R.id.button3: method3();
break;
case R.id.button4: method4();
break;
case R.id.button5: method5();
break;
default: break;
}
}
/**
*
*/
public void method1() {
Uri uri = Uri.parse("http://.....");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
/**
*
*/
public void method2(){
Uri uri = Uri.parse("http://.....");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
/**
*
*/
public void method3(){
Uri uri = Uri.parse("http://....");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
/**
*
*/
public void method4(){
Uri uri = Uri.parse("http://.....");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
/**
*
*/
public void method5(){
Uri uri = Uri.parse("http://.....");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
これが MainActivity.java クラスで、その下が activity_main XML ファイルです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/natlib"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_marginLeft="-8dp"
android:padding="@dimen/padding_medium"
android:text="@string/welsh_libs"
android:textColor="#79438F"
android:textSize="27dip"
android:textStyle="bold"
tools:context=".MainActivity" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:id="@id/button1"
android:layout_width="137dp"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="#A4C81C"
android:text="@string/ask_lib" />
<Button
android:id="@id/button2"
android:layout_width="137dp"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="#FF0066"
android:text="@string/find_book" />
<Button
android:id="@id/button3"
android:layout_width="137dp"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="#3F83F1"
android:text="@string/find_lib" />
<Button
android:id="@id/button4"
android:layout_width="137dp"
android:layout_height="wrap_content"
android:layout_marginBottom="25dp"
android:background="#FE0002"
android:text="@string/register" />
<Button
android:id="@id/button5"
android:layout_width="137dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="#FBFC3F"
android:text="@string/login" />
</LinearLayout>
<ImageView
android:id="@id/image1"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_marginBottom="5dp"
android:layout_marginLeft="165dp"
android:layout_weight="0.34"
android:contentDescription="@string/desc"
android:src="@drawable/waglogo"
android:visibility="visible" />
これがコードで、なぜそのポップアップ ボックスが表示されるのか不思議に思っています。コード自体に論理エラーは見られません。
PS URL を変更したので、実際の場所はわかりません。プロジェクトは非常に静かです;)