簡體   English   中英

使用java單擊按鈕時交換兩個文本視圖值

[英]swapping two text View value when click on button using java

在此輸入圖像描述

我在Java中使用布局參數創建了一個動態UI,我希望在單擊圖像視圖時更改兩個文本視圖值。

public class Sorting_Activity extends AppCompatActivity {

  LinearLayout Sorting_Linear;
  private final Context mContext = Sorting_Activity.this;
  String[] outletname = {"kevan", "parth", "keyur", "k", "a"};
  Button submit;

  LinearLayout.LayoutParams nametxt = new LinearLayout.LayoutParams(0, 160, 3);
  LinearLayout.LayoutParams imagebtnup = new LinearLayout.LayoutParams(160, 0, 2);
  LinearLayout.LayoutParams imagebtndown = new LinearLayout.LayoutParams(160, 0, 2);
  LinearLayout.LayoutParams linearlayout = new LinearLayout.LayoutParams(0, 160, 1);


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sorting_);

    //==========================================================
    //  Dynamic Designing Code
    //==========================================================

    nametxt.setMargins(4, 6, 0, 0);
    imagebtnup.setMargins(4, 6, 0, 0);
    imagebtndown.setMargins(4, 6, 0, 0);
    linearlayout.setMargins(4, 6, 0, 0);

    Sorting_Linear = (LinearLayout) findViewById(R.id.Sorting_Linear);
    submit = (Button) findViewById(R.id.submit);
    LinearLayout[] llRow = new LinearLayout[5];

    final TextView[] outletnametxt = new TextView[5];
    final ImageView[] imageButtonup = new ImageView[5];
    final ImageView[] imageButtondown = new ImageView[5];
    final LinearLayout[] Linearlayout = new LinearLayout[5];


    for (int i = 0; i < 5; i++) {

        llRow[i] = new LinearLayout(mContext);
        LinearLayout.LayoutParams paramsllRow = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        paramsllRow.setMargins(0, 2, 0, 0);
        llRow[i].setLayoutParams(paramsllRow);
        llRow[i].setOrientation(LinearLayout.HORIZONTAL);

        outletnametxt[i] = new TextView(mContext);
        outletnametxt[i].setLayoutParams(nametxt);
        outletnametxt[i].setText(outletname[i]);
        outletnametxt[i].setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
        outletnametxt[i].setTextSize(20);
        outletnametxt[i].setGravity(Gravity.CENTER);
        outletnametxt[i].setBackgroundColor(mContext.getResources().getColor(android.R.color.white));
        llRow[i].addView(outletnametxt[i]);


        imageButtonup[i] = new ImageView(mContext);
        imageButtonup[i].setLayoutParams(imagebtnup);
        imageButtonup[i].setImageResource(R.drawable.arrowup);


        imageButtondown[i] = new ImageView(mContext);
        imageButtondown[i].setLayoutParams(imagebtndown);
        imageButtondown[i].setImageResource(R.drawable.arrowdown);


        Linearlayout[i] = new LinearLayout(mContext);
        Linearlayout[i].setLayoutParams(linearlayout);
        Linearlayout[i].setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
        Linearlayout[i].setBackgroundColor(mContext.getResources().getColor(android.R.color.white));
        Linearlayout[i].setOrientation(LinearLayout.VERTICAL);
        Linearlayout[i].addView(imageButtonup[i]);
        Linearlayout[i].addView(imageButtondown[i]);
        llRow[i].addView(Linearlayout[i]);

        Sorting_Linear.addView(llRow[i]);


     }
  }
}

這是一個完整的設計代碼,我想在點擊imageButtondownimagebuttonup時更改textview的值。

將以下代碼放在for循環的末尾

final int itr = i;
imageButtonup[i].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        int index = itr < outletnametxt.length ? itr+1 : itr;
        String val = outletnametxt[index].getText().toString();//index of text value to get value from
        outletnametxt[index].setText(outletnametxt[itr].getText().toString());
        outletnametxt[itr].setText(val);
    }
});


imageButtondown[i].setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        int index = itr > 0 ? itr-1 : itr;
        String val = outletnametxt[index].getText().toString();
        outletnametxt[index].setText(outletnametxt[itr].getText().toString());
        outletnametxt[itr].setText(val);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM