2016-11-07 19 views
1

プログラムで作成されたボタンの属性を設定するにはどうすればよいですか?例えば、以下の私の例では、 "Place"ボタンの "android:layout_weight =" 1 ""と "on_click =" startsearch ""属性を作成します。プログラムで作成されたボタンの属性を設定するにはどうすればよいですか?

List<DB_Verlauf_Contact> placeList = db.getAllDBPlaces(); 
    LinearLayout layout = (LinearLayout) findViewById(R.id.verlauf_liste); 

    for (DB_Verlauf_Contact cn : placeList) { 
     String log = "Id: "+cn.getID()+" ,Place ID: " + cn.getPlace_id() + " ,Name: " + cn.getName()+ " ,Longitude: " + cn.getLongitude()+ " ,Latitude: " + cn.getLatitude(); 
     LinearLayout row = new LinearLayout(this); 
     row.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 

     Button Place = new Button(this); 
     Place.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
     Place.setText(cn.getName()); 
     Place.setId(cn.getID()); 
     row.addView(Place); 

     Button Delete = new Button(this); 
     Delete.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
     Delete.setText("Löschen"); 
     Delete.setId(cn.getID()); 
     row.addView(Delete); 

     layout.addView(row); 
     Log.d("Name: ", log); 
    } 

答えて

2

ゴー:

Button place = new Button(this); 
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) place.getLayoutParams(); 
params.weight = 1.0f; 
place.setLayoutParams(params); 


place.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //handle the click 
    } 
}); 

インスタンス名は小文字で始める必要があります。

+0

これまでのところ動作しますが、onclicklistener内のクラス「UI_MainActivity」のメソッド「public void openSettings(View view)」を呼び出すにはどうすればよいですか。申し訳ありませんが、私はJavaにとって非常に新しいです。 – Glave

+0

あなたが 'Fragment' do((UI_MainActivity)getActivity())にいるなら、openSettings(view); –

+0

フラグメントが何であるかはわかりませんが、これは私のためには機能しません。その情報が何らかの形で役立つなら、クラスは同じパッケージに入っています。 – Glave

関連する問題