Проблема с ImageButton, а также Force Close проекта в Android

Я сталкиваюсь с этой проблемой, что кнопки в Android не кликабельны, когда дают фон. Итак, я использовал ImageButton. В файле Java, как объявлены ImageButtons? У меня есть красный значок в текстовом виде, который я хотел разместить в правом верхнем углу ImageButton. Но textView не виден над кнопкой, т.е. он наполовину скрыт за кнопкой. Какое решение для этого?

Другая проблема заключается в том, что мой проект сталкивается с проблемой принудительного закрытия. Бревно кошки показывает:

05-11 04: 13: 29.508: D / (3913): после определения намерения

05-11 04:13:29.678: D/AndroidRuntime(3913): выключение виртуальной машины

05-11 04:13:29.678: W/dalvikvm(3913): threadid=1: поток выходит с необработанным исключением (группа =0x4001d800)

05-11 04:13:29.688: E/AndroidRuntime(3913): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное

05-11 04:13:29.688: E/AndroidRuntime(3913): java.lang.RuntimeException: невозможно запустить действие ComponentInfo
{phone.activities/phone.activities.leave}: java.lang.NullPointerException

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread.access$2300(ActivityThread.java:125)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.os.Handler.dispatchMessage(Handler.java:99)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.os.Looper.loop(Looper.java:123)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread.main(ActivityThread.java:4627)

05-11 04:13:29.688: E/AndroidRuntime(3913): в java.lang.reflect.Method.invokeNative(собственный метод)

05-11 04: 13: 29.688: E / AndroidRuntime (3913): на java.lang.reflect.Method.invoke(Method.java:521)

05-11 04:13:29.688: E/AndroidRuntime(3913): на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

05-11 04:13:29.688: E/AndroidRuntime(3913): на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

05-11 04:13:29.688: E/AndroidRuntime(3913):     at dalvik.system.NativeStart.main(собственный метод)

05-11 04: 13: 29.688: E / AndroidRuntime (3913): вызвано: java.lang.NullPointerException

05-11 04: 13: 29.688: E / AndroidRuntime (3913): на phone.activities.leave.onCreate(оставьте.java:33)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

05-11 04:13:29.688: E/AndroidRuntime(3913): на android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

05-11 04:13:29.688: E/AndroidRuntime(3913):     ... еще 11

В чем причина принудительного закрытия?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="right"
android:orientation="vertical" android:clickable="true">

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingLeft="90dp"
        android:paddingRight="58dp"
        android:text="eApproval"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="22dp"
        android:textStyle="bold"
        android:typeface="sans" />
</LinearLayout>


<TableLayout
    android:id="@+id/tableLeft"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="left"
    android:paddingLeft="20dp"
    android:paddingRight="30dp"
    android:paddingTop="25dp" >



    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">
<RelativeLayout android:layout_marginLeft="10dp">


    <Button
        android:id="@+id/buttonLeave"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:clickable="true"
      />


 <TextView
 android:id="@+id/textOne"
 android:layout_width="30dp"
 android:layout_height="30dp"
 android:layout_marginLeft="70dp"
 android:background="@drawable/picture1"
 android:gravity="center"
 android:text="5"
 android:textColor="#FFF"
 android:textSize="14dp"
 android:textStyle="bold"
 android:typeface="sans" />

</RelativeLayout>       
<RelativeLayout android:paddingLeft="20dp" android:layout_marginLeft="10dp">
<Button
        android:id="@+id/buttonTime"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="25dp"
        android:clickable="true"

        android:height="60dp"
        android:width="30dp" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginTop="10dp" />


<TextView
android:id="@+id/textTwo"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="80dp"
android:background="@drawable/picture1"
android:gravity="center"
android:text="4"
android:textColor="#FFF"
android:textSize="14dp"
android:textStyle="bold"
android:typeface="sans" />

</RelativeLayout>

    </TableRow>
    <TableRow >
        <TextView
            android:id="@+id/textLeave"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Leave Requests"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="normal|bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="20dp"
android:padding="5dp"
android:gravity="center"/>

         <TextView
            android:id="@+id/textTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Time Booking"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="50dp" android:padding="5dp" 
android:gravity="center"/>
   </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
<RelativeLayout android:layout_marginLeft="10dp">

    <Button
        android:id="@+id/buttonCart"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="20dp"

        android:height="60dp"
        android:width="30dp" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginTop="10dp" 
android:clickable="true"/>


 <TextView
 android:id="@+id/textThree"
 android:layout_width="30dp"
 android:layout_height="30dp"
 android:layout_marginLeft="70dp"
 android:background="@drawable/picture1"
 android:gravity="center"
 android:text="2"
 android:textColor="#FFF"
 android:textSize="14dp"
 android:textStyle="bold"
 android:typeface="sans" />

</RelativeLayout>       
<RelativeLayout android:paddingLeft="20dp" android:layout_marginLeft="10dp">
<Button
        android:id="@+id/buttonInvoice"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="25dp"

        android:height="60dp"
        android:width="30dp" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginTop="10dp" 
android:clickable="true"/>


<TextView
android:id="@+id/textFour"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="80dp"
android:background="@drawable/picture1"
android:gravity="center"
android:text="3"
android:textColor="#FFF"
android:textSize="14dp"
android:textStyle="bold"
android:typeface="sans" />

</RelativeLayout>

    </TableRow>
      <TableRow >
        <TextView
            android:id="@+id/textCart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="Shopping Cart"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="20dp" android:padding="5dp" 
android:gravity="center"/>

         <TextView
            android:id="@+id/textInvoice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="Invoice"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="50dp" android:padding="5dp" 
android:gravity="center"/>
   </TableRow>


    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
<RelativeLayout android:layout_marginLeft="10dp">

    <Button
        android:id="@+id/buttonPurchase"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="20dp"

        android:height="60dp"
        android:width="30dp" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginTop="10dp" 
android:clickable="true"/>


 <TextView
 android:id="@+id/textFive"
 android:layout_width="30dp"
 android:layout_height="30dp"
 android:layout_marginLeft="70dp"
 android:background="@drawable/picture1"
 android:gravity="center"
 android:text="4"
 android:textColor="#FFF"
 android:textSize="14dp"
 android:textStyle="bold"
 android:typeface="sans" />

</RelativeLayout>

<RelativeLayout android:paddingLeft="20dp" android:layout_marginLeft="10dp">

<Button
    android:id="@+id/buttonTravel"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="5dp"
    android:layout_marginLeft="25dp"
    android:layout_marginTop="10dp"

    android:clickable="true"
    android:height="60dp"
    android:width="30dp" />


<TextView
    android:id="@+id/textSix"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_marginLeft="80dp"
    android:background="@drawable/picture1"
    android:gravity="center"
    android:text="7"
    android:textColor="#FFF"
    android:textSize="14dp"
    android:textStyle="bold"
    android:typeface="sans" />

</RelativeLayout>

    </TableRow>


    <TableRow >
        <TextView
            android:id="@+id/textPurchase"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="Purchase Order"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="20dp" android:padding="5dp" 
android:gravity="center"/>

         <TextView
            android:id="@+id/textTravel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:text="Travel Approval"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15dp"
            android:textStyle="bold"
            android:typeface="sans"
            android:width="90dp" android:layout_marginLeft="50dp" android:padding="5dp"
android:gravity="center"/>
   </TableRow>
</TableLayout>

</LinearLayout>

Метод onCreate является следующим: package phone.activities;

import phone.activities.R;
import phone.activities.R.id;
import phone.activities.R.layout;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class EApprovalActivity extends Activity implements OnClickListener {
private static final String TAG = null;


/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    Button leaveButton;
    leaveButton = (Button)findViewById(R.id.buttonLeave);
    leaveButton.setOnClickListener(this);

    Button timeButton;
    timeButton = (Button)findViewById(R.id.buttonTime);
    timeButton.setOnClickListener(this);

    Button cartButton;
    cartButton = (Button)findViewById(R.id.buttonCart);
    cartButton.setOnClickListener(this);

    Button invoiceButton;
    invoiceButton = (Button)findViewById(R.id.buttonInvoice);
    invoiceButton.setOnClickListener(this);

    Button purchaseButton;
    purchaseButton = (Button)findViewById(R.id.buttonPurchase);
    purchaseButton.setOnClickListener(this);

    Button travelButton;
    travelButton = (Button)findViewById(R.id.buttonTravel);
    travelButton.setOnClickListener(this);

}


public void onClick(View v) {
    ComponentName cn;
    switch(v.getId())
    {
    case R.id.buttonLeave:
        Intent leaveIntent = new Intent(EApprovalActivity.this,
leave.class); 
        startActivity(leaveIntent);                 
        break;

    case R.id.buttonTime:
        Intent timeIntent = new Intent(EApprovalActivity.this,
time.class); 
        startActivity(timeIntent);                  
        break;

    case R.id.buttonCart:
        Intent cartIntent = new Intent(EApprovalActivity.this, 
cart.class); 
        startActivity(cartIntent);                  
        break;

    case R.id.buttonInvoice:
        Intent invoiceIntent = new Intent(EApprovalActivity.this, 
invoice.class); 
        startActivity(invoiceIntent);                   
        break;

    case R.id.buttonPurchase:
        Intent purchaseIntent = new Intent(EApprovalActivity.this, 
purchase.class); 
        startActivity(purchaseIntent);                  
        break;

    case R.id.buttonTravel:
        Intent travelIntent = new Intent(EApprovalActivity.this, 
travel.class); 
        startActivity(travelIntent);                    
        break;


    } Log.d(TAG,"after defining intent");
    }
}

1 ответ

Решение

В файле Java, как объявлены ImageButtons?

ImageButton ib = findByViewId(R.id.yourImageButtonId);

textView не виден над кнопкой, т.е. он наполовину скрыт за кнопкой. Какое решение для этого?

Вы можете установить текст на кнопку без необходимости помещать текстовое представление поверх нее.

Также вы можете дать простую кнопку android:drawableOnTop атрибут, данный ресурс появляется сверху.

Для вашей другой проблемы:

Проверьте строку 33 в вашем методе onCreate(). Отправьте это, если вы не можете найти NullPointer самостоятельно.

Другие вопросы по тегам