0

だから私はここで私のアプリのクラッシュの解決策/理由を探していました. さらに、logcat が機能しません。動作すると、メイン アクティビティに何か問題があることが報告されましたが、すべてのコードを提供しました。誰かがこれで私を助けることができれば、それは大歓迎です。

主な活動:

     import android.os.Bundle;
     import android.app.Activity;
     import android.view.Menu;
     import android.view.View;
     import android.widget.*;
     import android.widget.AdapterView.OnItemClickListener;


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

        final GridView gridview = (GridView) findViewById(R.id.gridView1);
        Table t=new Table((Double) null, null);
        gridview.setAdapter(new ImageAdapter(this, t));

        gridview.setOnItemClickListener(new OnItemClickListener() 
        {
             @Override
             public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
             {
                 Toast.makeText(gridview.getContext(), "" + position, Toast.LENGTH_SHORT).show();
             }

        });
   }


}

イメージアダプター:

package com.example.myspending;

import java.util.ArrayList;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

public class ImageAdapter extends BaseAdapter 
{
    private Context mContext;
    private ArrayList<String> texts;
    public ImageAdapter(Context context, Table t) 
    {
        mContext=context;
        for(int i=0; i<t.size(); i++)
        {
        texts.add((t.table.get(i).name)+" $"+(t.table.get(i).money));
        }
    }
    @Override
    public int getCount() 
    {
        return texts.size();
    }
    @Override
    public Object getItem(int position) 
    {
         return null;
    }
    @Override
    public long getItemId(int position) {
        return 0;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView tv;
        if(convertView==null){
            tv=new TextView(mContext);
            tv.setLayoutParams(new GridView.LayoutParams(85,85));
        }
        else{
            tv=(TextView)convertView;
        }
        tv.setText(texts.get(position));
        tv.setTextSize(30);
        return tv;
    }

}

テーブル:

package com.example.myspending;

import java.util.*;

public class Table
{
        public ArrayList<spending> table= new ArrayList<spending>();
    double price;
    String name;
    double total;
    public Table(double p, String n)
    {
        price=p;
        name=n;
        total+=price;
        table.add(new spending(total, "Total"));
        table.add(new spending(price, name));
    }
    public void insert(double p, String n)
    {
        total+=p;
        table.add(new spending(p, n));
    }
    public void delete(String n)
    {
       for(int i=0; i<table.size(); i++)
       {
            if(table.get(i).name==n)
            {
                total-=table.get(i).money;
                table.remove(i);
            }
       }
    }
    public void reset()
    {
        for(int i=0; i<table.size(); i++)
        {
                table.remove(i);
        }
    }
    public int size()
    {
        return table.size();
    }
}
class spending
{
    public double money;
    public String name;
    public spending(double m, String n)
    {
        money=m;
        name=n;
           if(!(name=="deposit"||name=="Deposit"||name=="add"||name=="Add"||name=="added"||name=="Added"))
        {
            money=money*(-1);
        }
    }
 }

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.myspending"
     android:versionCode="1"
     android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.myspending.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

レイアウト:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >



    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="325sp"
        android:layout_toRightOf="@+id/textView1"
        android:numColumns="3" >

    </GridView>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/gridView1"
        android:ems="10"
        android:inputType="text" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/gridView1"
        android:layout_below="@+id/editText1"
        android:text="add" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignLeft="@+id/editText1"
        android:ems="10"
        android:inputType="numberDecimal" />

</RelativeLayout>
4

3 に答える 3

0

いくつかの一般的な注意事項:

  1. このように大量のコードを投稿すると、他の人のために分析することが難しくなるため、Really Useful Answer(tm) を取得するチャンスが減少します。
  2. コードを短い自己完結型のコンパイル可能な例 ( http://sscce.org/を参照) に縮小する過程で、問題を回避することも容易になります。この段階で、作者が自分で欠陥を見つけることがよくあります。
  3. 問題が再現可能である場合、つまり実行のたびに発生する場合、これは朗報です。固定するのに必要な実行数が少ないため
  4. デバッグ ツールを使用します。デバッガーを持っていない/知らない場合は、中間結果または「マイルストーン 1 に達しました」などの単純なメッセージを出力するだけで、エラーが発生するプログラムの部分を区切ることができます。
  5. ゼロからコードを書き始めるのは (絶望的に頭に浮かぶかもしれませんが) 長期的には良くありません。機能するコードにたどり着いたとしても、ここで何が間違っていたのか、プログラミング エラーに対処する方法を学ぶことは決してないからです。将来。
于 2016-05-17T14:28:37.523 に答える
0
class spending
{
    public double money;
    public String name;

    public spending(double m, String n)
    {
        money=m;
        name=n;

        if(name.equalsIgnoreCase("deposit") == false && 
           name.equalsIgnoreCase("add") == false  && 
           name.equalsIgnoreCase("added") == false)
        {
            money *= -1;
        }
    }
}
于 2013-04-12T02:57:11.220 に答える
0

を取り出して(Double) null、そこで何を達成しようとしていますか? また、 ではなくアイテムのコンテキストを使用してgridviewください

public class MainActivity extends Activity
{ 
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        final GridView gridview = (GridView) findViewById(R.id.gridView1);

        Table t = new Table(-1d, null);

        gridview.setAdapter(new ImageAdapter(this, t));

        gridview.setOnItemClickListener(new OnItemClickListener() 
        {
             public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
             {
                 Toast.makeText(v.getContext(), Integer.toString(position), Toast.LENGTH_SHORT).show();
             }
        });
   }
}
于 2013-04-12T03:03:43.920 に答える