自作アンドロイドアプリで足し算できない

このQ&Aのポイント
  • プログラミングの初心者が自作アンドロイドアプリを作成しようとしていますが、足し算の機能がうまく機能しません。
  • エミュレーターでアプリを表示させることができず、プログラムに何か間違いがあるのか疑問に思っています。
  • Windows7 64bitを使用しています。
回答を見る
  • ベストアンサー

自作アンドロイドアプリで足し算できない

プログラミングの初心者ですがアンドロイドアプリを作ってみたいと思って練習しています。 練習用のアプリを作りエミュレーターで表示させたいのですがうまくいきません。 プログラムのどこかが間違っているのでしょうか? eclipse上ではエラーのマークなどは出ておらす、エミュレーターもちゃんと起動されますが、 アプリ起動直後にエミュレーター画面内に強制終了の画面が出て計算結果が表示されません。 OS Windows7 64bit --------------------------------- package in.andante.android.CalAppli; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class CalAppliActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); int i1; int i2; int i3; i1 = 1; i2 = 2; i3 = i1+i2; tv.setText(i3); setContentView(i3); } } よろしくお願いします

  • cskw
  • お礼率68% (28/41)
  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.2

tv.setText(i3); ↓ tv.setText("" + i3); このように修正したら動きませんか? setTextでint値を直接指定してしまうと、そのリソースを探してしまいますよ。テキストを表示したいならStringなりにして渡さないといけません。

cskw
質問者

お礼

good-failure様のご指摘のように変更しましたが今度は強制終了の画面は出ずに何も表示されないままでした。 >テキストを表示したいならStringなりにして渡さないといけません。 を頼りに自分なりに調べたところint値をStringに変換する方法を発見し以下のように変更したところうまくいきました。 ----------------------------------------- package in.andante.android.CalAppli; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class CalAppliActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); int i1; int i2; int i3; String s1; i1 = 1; i2 = 2; i3 = i1+i2; s1 = String.valueOf(i3); tv.setText(s1); setContentView(tv); } } お手数おかけしました。ありがとうございました。 またよろしくお願い致します。

その他の回答 (1)

noname#161640
noname#161640
回答No.1

値を設定したTextViewを表示していないからでしょう。 setContentViewの引数はTextViewではなく、ただのint値になっていますよ。

cskw
質問者

補足

setContentView(i3); を setContentView(tv); に修正しましたがうまくいきません・・・ また、強制終了の画面が出てきてしまいます。

関連するQ&A

  • ANDROIDアプリからシェルコマンド

    アンドロイドアプリ、というかJAVA初心者です。 アンドロイドアプリからシェルコマンドを実行したいのですが、うまくできません。他サイトを参考に以下のように作ってみたのですがどこが悪いのでしょうか? このアプリを実行してもchmodできません。 ちなみにadb shellでは同様のコマンドでちゃんとchmod できます。 よろしくお願いします。 package com.android.test; import java.io.DataOutputStream; import java.io.IOException; import android.app.activity; import android.os.Bundle; import android.widget.TextView; public class ShelltestActivity extends Activity { /** Called when the activity is first created. */@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = new TextView(this); tv.setText("Hello, World"); setContentView(tv); try { Process p = Runtime.getRuntime().exec("su"); DataOutputStream dos = new DataOutputStream(p.getOutputStream()); dos.writeBytes("chmod 777 /data/app/*\n"); dos.flush(); } catch (IOException e) { e.printStackTrace(); } } }

  • androidのオプションメニューについて

    androidアプリの作り方を勉強しているのですが、オプションメニューを実装しようと思いonCreateOptionMenuを書いたのですが、エミュレータでメニューボタンを押してもメニューが現れません。onCreateOptionMenu内でTextViewの文字を変更するようにしたのでが、TextViewは変更されず、そもそもonCreateOptionMenuがスルーされているようです。だれか、わかる方がいたらご教授お願いします。 以下ソースです。 シンプルにしたのですが問題がわかりません。 import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; public class Test04Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionMenu(Menu menu){ super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } }

  • Android開発の最初の段階でつまづく

    アンドロイドのアプリ制作を始めようと思い、なんとか環境を揃え、早速チュートリアルサイトを見ながら始めたのですが、早速、最初のHelloWorldでつまづいてしまいました。 以下ソースコードです。 ********************************************************************************** package helloAndroid.PackageName; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloAndroidActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello,Andloid"); setContentView(tv); } } ********************************************************************************** このように書いたのですが、 The left-hand side of an assignment must be a variable というエラーが下から4行目の tv.setText("Hello,Andloid"); のところで出ます。 調べてはいるのですが、このエラーの意味がいまいちわからず困っています。 アドバイスよろしくお願いします。 私自身はVBを少し触ったことのある程度で、Javaは初めてです。

  • androidのアプリを作ってるんですが

    import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; import android.content.Intent; import android.widget.ImageView; public class GameActivity extends Activity implements OnTouchListener{ private ImageView target; @Override protected void onCreate(Bundle savedInstanceState) { target = (ImageView)findViewById(R.id.imageView1); super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); target.setOnTouchListener(this); } @Override public boolean onTouch(View v, MotionEvent motion) { switch(motion.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_UP: break; } return true; } } これからゲーム本体を作っていこうとしてるんですが、onTouchメソッドを実装してから実機で動作しなくなり、先に進めず困っています。なぜこれで動作しないのか私の知識不足でよくわかりません。 回答お願いいたします。

    • ベストアンサー
    • Java
  • andopoid開発HelloWorld

    andopoidをインストールしてHelloWorldを表示させようとしました。 emulatorは起動できましたが、待っていてもHelloWorldが実行されません。 他のサイトで結構時間がかかると書いてあったので、一時間放置していてもHelloWorldは 実行されず、menuボタンや他のボタンも実行できません。 下記がソースになりますが、何か足りない部分とかありますでしょうか? スイマセン、詳しい方教えて下さい。 package com.android.example; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, World"); setContentView(tv); } }

  • Androidプログラミング アプリが停止する

    eclipseでボタンを押すと画像が表示されるアプリをつくろうとしていましたがボタンをを押すとポップアップで「~を停止します。」と表示されアプリが落ちてしまいます。 Ver4.0を使用しています。 package my.application.imageviewer; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; public class ImageViewer extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void showImage(View view) { ImageView imageView1 = (ImageView)findViewById(R.id.imageView1); imageView1.setImageResource(R.drawable.sample); } } プログラムにミスがあるのでしょうか? 宜しくお願い致します。

  • androidでアプリを作ろうとしてるのですが

    package com.example.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; public class InOutTest extends Activity { /** Called when the activity is first created. */ public TextView txtInfo; public EditText edtText; public Button outputbutton; public TextView txtResult; public TextView txtjudge; public String strInch; public String gettext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //レイアウト作成 ここから LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //レイアウトを見えるようにする //レイアウト作成 ここまで //GUI部品作成 ここから // ラベル txtInfo = new TextView(this); txtInfo.setText("check"); strInch = ("check"); layout.addView(txtInfo); // エディタ edtText = new EditText(this); layout.addView(edtText); // ボタン txtResult = new Button(this); txtResult.setText("same or difference"); layout.addView(txtResult); // 結果表示用ラベル txtjudge = new TextView(this); txtjudge.setText("check"); layout.addView(txtjudge); //GUI部品作成 ここまで txtResult.setOnClickListener(new OnClickListener(){ public void onClick(View v) { gettext = edtText.toString(); if (strInch==gettext){ txtjudge.setText("ok"); } }; }); }} 上のプログラムで strInchに入ってるデータとgettextで取得した文章を比較して同じなら txtjudgeにOKと引き渡して表示させたいのですがうまく動きません 何方かどうぞよろしくお願い致します

    • ベストアンサー
    • Java
  • Android実行時のエラー(実機にて)

    Androidアプリ開発初心者の者です。 下記に記載しています書籍のアプリを 作成中にエラーが起こりスマホのアプリが強制終了と いう形で落ちてしまいます。 【アプリを作ろう! ゼロから学ぶアプリの作成から公開まで Android2.3~4.1対応】  http://ec.nikkeibp.co.jp/item/books/P96130.html Eclipseのコード画面は以下のようになっています。 【OmikujiActivity.java】 package makeApplication.omikuji; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class OmikujiActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 文字を表示する TextView tv = (TextView) findViewById(R.id.action_settings); tv.setText("おみくじアプリ"); } } 下から4行目のaction_settingsの部分は書籍では補完候補で、 hellow_view:int - R.idがポップアップ表示されているのですが、 現在私のコード画面には表示されず、仕方なくaction_settingsを選択しています。 上記で保存し実行すると、スマホの実機の方で「おみくじ」と表示されず、 そのまま強制終了してしまい再度実行を促されてしまいます。 action_settingsの部分が原因なのかどうかよく 分からないのでお詳しい方ぜひ教えて頂きたいです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • androidアプリ開発 youtube表示方法

    androidアプリをjavaで開発してます。youtube動画を見れるアプリにしたいです。下記のコードでyoutubeサイトには行けるんですが、画象をクリックしても動画を見ることができません。どのようにすれば動画を見れるようになるでしょうか?どうぞよろしくお願いします。 package com.XXX; import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web); WebView webView = (WebView)findViewById(R.id.main_webview); webView.setWebViewClient(new WebViewClient()); webView.loadUrl(url); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); } }

  • Androidアプリ 通信について

    JAVAのカテゴリでご回答が得られなかったのでこちらにも投稿いたします。 タブレット(ICONIA TAB A200 (OS:Android4.0.6))から 無線LANで接続されたPC(SONY製 ネットブック (OS:windows 7 32bit))へ UDPのパケットを送信しようと考えています。 ボタンを押したら文字列"AAA"を送信するだけのものですがボタンを押しても PCにデータが届きません。 PC側はフリーでダウンロードしたUDP/IPツールを使っていますが、 これは使用実績がありますので、問題ないかと思います。 他の方が作られたUDPパケット送信アプリを使うとうまく送信できているので、 タブレットが通信できないということはなさそうです。 問題なのはアンドロイドのアプリ側だと考えています。 パケットキャプチャソフトで見ても特にパケットはPCにきていなさそうです。 PCからアンドロイドタブレットへPing(ICMPパケット)を送ると、ちゃんと応答があります。 どこかプログラムでおかしいところ、抜けていること、余計なことがありますでしょうか? (通信部分に関してお願い致します。) タブレットのIPアドレス192.168.0.3 PCのIPアドレス192.168.0.5 <アンドロイド アプリ main.java> package my.Package.Tabtest; import java.io.IOException; import java.net.*; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class TabtestActivity extends Activity { public DatagramSocket ds; public DatagramPacket dp; public int i; private TextView mytv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mytv = (TextView)findViewById(R.id.tv1); } public void btn_on(View v){ i++; mytv.setText(String.format("COUNT:%d",i)); try{ InetSocketAddress remoteAddress = new InetSocketAddress("192.168.0.5",42000); dp = new DatagramPacket("AAA".getBytes(), 4, remoteAddress); //Socket の設定,通常の Java と同じ ds = new DatagramSocket(); //DatagramSocket 作成 ds.send(dp); // try catch で利用 } catch(Exception e){ i++; i++; i++; } } } <アンドロイド アプリ レイアウトファイル main.xml> <?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:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/tv1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="PUSH HERE!!!!!!" android:onClick="btn_on" /> </LinearLayout>

専門家に質問してみよう