Android虚拟设备问题与URL和按钮

时间:2012-07-19 11:48:43

标签: java android xml avd

我对这个Android的东西相当新,但是我正在构建一个小应用程序,当你按下按钮时,你可以转到特定的URL(转到网站的优化版本)。然而,我遇到了一个问题。应用程序符合并加载到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" />

这就是代码,我只是想知道它为什么会生成弹出框。我在代码本身中看不到任何逻辑错误。

P.S。我修改了网址,因此您无法看到它们实际到达的位置。项目非常安静;)The Pop Up Error message when I click a button

2 个答案:

答案 0 :(得分:0)

在声明新ID时,您需要在布局中使用“@ + id”:

<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" />

<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" />

答案 1 :(得分:0)

我现在已经解决了这个问题。清理了项目,摆脱了一些相互冲突的进口,一切运转良好。谢谢大家的帮助!