[英]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]);
}
}
}
這是一個完整的設計代碼,我想在點擊imageButtondown
和imagebuttonup
時更改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.