質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

4400閲覧

イメージボタンをクリックした後で、そのページが消えるようにしたい

mari_tom

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2015/06/15 06:24

こうしたいと思った動作が出来ず、意図していない動作になってしまいます。
理想:別の画面からこのコードの画面に移動してきて、この画面にあるonemoreというイメージボタンをクリックすると、この画面が消える(前の画面である「別の画面」が画面に出る)
現実:別の画面(仮に2ページ目とします)からこの画面に移動せず(この画面が表示されず)、この画面でなく2ページ目が消えてしまい、TOP画面である1ページ目が現れる

lang

1package jp.example.パッケージ名; 2 3import android.app.Activity; 4import android.content.Intent; 5import android.os.Bundle; 6import android.view.View; 7import android.view.View.OnClickListener; 8import android.widget.ImageButton; 9 10public class クラス名 extends Activity implements OnClickListener{ 11 private ImageButton onemore; 12 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.レイアウトxml名); 17 18 // ボタンを生成 19 ImageButton imgbtn3 = new ImageButton(this); 20 imgbtn3.setImageResource(R.drawable.onemore); 21 22//クリックイベントリスナー 23onemore = (ImageButton) findViewById(R.id.onemore_btn); 24onemore.setOnClickListener(new View.OnClickListener() { 25 26 //ボタンが押されたら何かする 27 @Override 28 public void onClick(View v) { 29 //インテントに、この画面を指定する 30 Intent intent = new Intent(); 31 32 //戻り値設定 33 setResult(RESULT_OK, intent); 34 35 //サブ画面終了 36 finish(); 37 } 38 39}); 40} 41 42 @Override 43 public void onClick(View paramView) { 44 // TODO 自動生成されたメソッド・スタブ 45 46 } 47 48 49 50 }

補足:
・imgbtnが「imgbtn3」なのは、他のページにimgbtnとimgbtn2がある為です
・プログラム終わりの蛇足のように見えるこれ↓は
@Override
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ

} }

『型 クラス名 は継承された抽象メソッド View.OnClickListener.onClick(View) を実装する必要があります』というエラーが出てしまっており、
(public class クラス名 extends~ の行で発生していたエラーです)
その解決策である「実装されていないメソッドの追加」をクリックすると出てきて、エラーも消えるので付けています。逆にこれが無いとエラーが出ます
クリックイベントリスナーの下と//インテントに、この画面と、遷移する別の画面を指定するの間にあるpublic void onClick(View v) {
に反応しない理由が分かりませんが、エラーが出ないのでそのままにしてあります

このコードの何処を直せば、意図した通りに動かすことができますでしょうか。どうか教えていただけたらと思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

'<'文字を含めることはできません

というのは、変更前の name の値 に " が抜けているのが原因だと思います。
変更後のマニフェストの記述では Activity として認識できていないはずです。
なので、変更前の name の値の末尾に " をつければ Activity として認識して遷移できると思いますが、いかがでしょうか?

念のためこういうこと。

lang

1<activity android:label="@string/app_name" android:name=".G_1r"/>

投稿2015/06/15 08:37

ykws

総合スコア1236

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mari_tom

2015/06/15 08:45

ありがとうございます!教わった通りにマニフェストを直したらちゃんと理想どおりに動いてくれました!! 完全にうっかりポカが原因のミスでした、本当にありがとうございました!
guest

0

画面が表示されないのは遷移してないからじゃないですか?
Intentで遷移するようにしていますか?

投稿2015/06/15 06:55

MasaakiIrie

総合スコア1021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mari_tom

2015/06/15 07:16

前の画面のソースに Intent intent = new Intent(G_1.this, G_1r.class); startActivityForResult(intent,0); と指定しているので、Intentは出来ていると思います
MasaakiIrie

2015/06/15 07:33

マニフェストには登録OKですか? 処理的には問題なさそうですね。 リスナーを継承してるので、 onemore.setOnClickListener(new View.OnClickListener() { //ボタンが押されたら何かする @Override public void onClick(View v) { //インテントに、この画面を指定する Intent intent = new Intent(); //戻り値設定 setResult(RESULT_OK, intent); //サブ画面終了 finish(); } }); ここは onemore.setOnClickListener(this); onClic(){ 処理 } ですかね。
mari_tom

2015/06/15 08:12

ありがとうございます。 マニフェストにもこの画面と前の画面、両方登録してあります コメントを参考にコードをこう↓変えてみたのですが、エラーが出てしまいます //クリックイベントリスナー onemore = (ImageButton) findViewById(R.id.onemore_btn); onemore.setOnClickListener(this); onClic(){ //インテントに、この画面を指定する Intent intent = new Intent(); //戻り値設定 setResult(RESULT_OK, intent); //サブ画面終了 finish(); } } onClic(){ の行で『メソッド onClic() は型 G_1r で未定義です 』というエラーが出て、これの解決策として↓これを追加しろと言われ、 private void onClic() { // TODO 自動生成されたメソッド・スタブ } 追加すると、onClic();{に書き換えろと別のエラーが出ます。 そう書き換えて実行しても、動作は以前と変わりませんでした… 自分でも考えてみたのですが、どこをどうして良いやら分からずにいます…
mari_tom

2015/06/15 08:18

すみません、ひょっとしたらマニフェストに問題があるかもしれません </activity> <activity android:label="@string/app_name" android:name=".G_1"/> <activity android:label="@string/app_name" android:name=".G_1r/> </application> だと下の行を追加した時に『要素タイプ"null"に関連付けられている属性"android:name"の値には、'<'文字を含めることはできません。』というエラーが出るため、 <activity android:label="@string/app_name" android:name=".G_1"/> activity android:label="@string/app_name" android:name=".G_1r にした事を忘れていました
mari_tom

2015/06/15 09:00

すみませんjavaではなくマニフェストの初歩的なエラーでした…お手数おかけして本当に申し訳ありませんでした!! 以後このような凡ミスがないよう気をつけます。本当にすみませんでした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問