2011-11-15 10 views
0

私は私の問題を説明しようとします。下のコードは、配列が別のクラスから取得するため、いくつかのtextviewとボタンを追加しようとしています。リスナーを使用してテキストとボタンを連続して作成しますか?

public class Breakfast extends Activity { 

    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Bundle extras = getIntent().getExtras(); 

     ScrollView sv = new ScrollView(this); 
     LinearLayout ll = new LinearLayout(this); 
     sv.addView(ll); 
     if (extras != null) { 

      String food[]=extras.getStringArray("food");  
      String foodCateg[]=extras.getStringArray("foodCateg"); 

      int K=0; 

      for (int i = 0; i < food.length/3; i++) { 
       TextView foodDay = new TextView(this); 
       foodDay.setText("Day "+ (i+1));  
       ll.addView(foodDay); 

       for (int j=K;j<K+3;j++){ 
        Button contfood= new Button(this); 
        contfood.setText(food[j]); 
        ll.addView(contfood); 
       } 
       K=K+3;   
      } 
      this.setContentView(sv); 
     } 
    } 

私の質問は、どのようにこのボタンが画面上でクリックされたのかわかりますか?それらのうちの1つがクリックされた場合(前に書いたテキストを得る)、私は何か他のことをするでしょう。


ahhhhhhhhhhhhhhhhhはい私はListActivityを実行する方法を知っています。しかし、まず私はこれを簡潔にする方法を考えていないので、手でやっていると思います...

リストビューとそれからメソッドOnListItemClickをすべてビルドしようとしてくれてありがとうございます。その解決策。

私はその日を挿入するとき(私はすべてのコードを聞いてはいけません...)しかし、私は.setgravity .setSize .setbackgroundResourceなどを行います。その日の食べ物で私はsetgravityとその他のパラメータの違い。ですから、リストビューではすべてが同じ仕様になると思います。それは私が気に入らないものです。

so ...画面上でどのボタンが押されているのか知りたいですか?

+0

あなたはそれを言う。 A * NEW *質問。別にお尋ねして、奇妙な答えを受け入れてください。 – keyboardsurfer

+0

これは新しい質問だとは思わないが、最初は新しいことかもしれないと言ったが、最終的に私の質問は最初の投稿と同じであるという結論に至る。しかし、私は編集します... – Txispas

答えて

1

あなたはcontfood.setId(i)を使用してそこからあなたの道を進むことができます。

実際にはListActivityを作成して、それをOnItemClickListenerとして使用したいと思っています。

+0

私はちょうどそれを投稿するつもりだった!このアドバイスに従ってください! ListViewを使用して、手動で行うことはしないでください。さもなければ、それはあなたを道路の後で噛むために戻ってくるでしょう。 – davidcesarino

+0

+1、ListView/ListActivityは最初はちょっと複雑かもしれませんが、一度取得すれば手で行うよりもずっと簡単で "良い方法"です – Guillaume

+0

soooo私の質問に対する最良の答えは、 contfood.setid(i)forの内部です。しかし、どうすればクリックされたボタンの総称を呼び出すことができますか? – Txispas

0

あなたがすべきことは、各ボタン "contfood"にidを付けることです。そして、あなたがボタンをクリックすると、あなたが望むアクションを行うためにidを取り戻します。

for (int j=K;j<K+3;j++){ 
       Button contfood= new Button(this); 
       contfood.setText(food[j]); 
       ll.addView(contfood); 

       public void onClick(View view) { 
        Intent myIntent = new Intent(view.getContext(), xxx.class); 
        startActivityForResult(myIntent, 0); 
      } 
} 

とメソッド内のパラメータを追加します。

もう一つの方法は、ボタンを作成し、メソッドpublic空のonClick(ビュービュー)を添付することです。

+0

私は申し訳ありませんが、onClickはoncreateメソッドの外に置かなければならないため、これは機能しません。私は最良の答えは、私がすでに行っているすべてのボタンのIDを実装することであると思うし、私はこのボタンがどのように押されたのかを言わなければならないときに私の問題が発生する! – Txispas

関連する問題