2016-03-29 15 views
0

私はAndroidプラットフォームでRelativeLayoutを持っています。ビューのため、以下の画像のように見えます(フライング、スポーツ、飛行機、旅行) this 私はそれらドラッグによってビューの場所に変更します。場所を変更した後ドラッグした後に相対レイアウトの子を取得するにはどうすればよいですか?

case DragEvent.ACTION_DRAG_LOCATION: 

       RelativeLayout.LayoutParams ParamV = (LayoutParams) v.getLayoutParams(); 
       int idV = (Integer) v.getId(); 
       if (idV == MainActivity.count) 
        return true; 
       if (idV == 100) { 
        MainActivity.BtDel.setBackgroundResource(R.drawable.rounded); 
        return true; 
       } 
       BtT.setLayoutParams(ParamV); 
       BtT.setId(idV); 
       v.setLayoutParams(ParamB); 
       v.setId(idB); 
       ParamB = ParamV; 
       idB = idV; 
       return true; 

は、私は次の絵を持っています: this

私はレイアウトの子供を取得するには、次のコードを使用します。

StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < layout.getChildCount(); i++) { 
     Button Bt = (Button) layout.getChildAt(i); 
     CharSequence St = Bt.getText(); 
     sb.append(St); 
     if (i < layout.getChildCount() - 1) 
      sb.append(","); 
    } 

をしかし、結果はまさに最初の写真のようなものですビューの位置が変更されます。 問題は何ですか?どうすれば解決できますか?

答えて

0

場所は変更される可能性がありますが、その順序は常に同じです。 異なるレイアウト、おそらくGridLayoutの使用を検討する必要があります。

アクティビティのビューに静的な参照を置くことは決してありませんでした。それは悪いプログラミングであるだけでなく、あなたのビューは決してガベージコレクションされず、あなたのアプリは深刻なメモリリークを起こします。

+0

私はこれ以上選択しません。相対的なレイアウトと問題のみを使用する必要があります。どうやって注文を変更することができますか? – Sohrab

関連する問題