
안녕하세요 제가 주문 관련 어플을 제작중인데요
화면디자인 구성을 저런형식으로 했습니다.
그런데 기능구현중 어려운부분이 있어서 이렇게 질문을 올리게되었습니다.
1. 왼쪽 위 특정 TableRow를 선택 하면 해당 TableRow만 BackGroundcolor 가 바뀌는것
2. 왼쪽 위에부분의 특정 TableRow를 선택하여서 그 해당 Row만 지워주는 것
3. 오른쪽위에버튼을 누르면 왼쪽 위에 TableLayout에 TableRow를 동적으로 생성해주는 겁니다. 이부분에서 제품명이 같을시에 수량이 올라가도록 하고싶은데 어떻게 해야될지..
public void appendRow(final String[] strarray){
final TableLayout tb = (TableLayout)findViewById(R.id.table);
final TextView[] tv = new TextView[strarray.length];
for(int i=1;i<strarray.length+1;i++){
final int k = i;
tv[i-1] = new TextView(this);
tv[i-1].setText(strarray[i-1].toString());
tv[i-1].setTextColor(Color.parseColor("#7F7F7F"));
//tv[i-1].setBackgroundResource(R.drawable.border);
tv[i-1].setGravity(Gravity.CENTER);
tv[i-1].setShadowLayer(1.0f, 1, 1, Color.parseColor("#AFFFFFFF"));
tv[i-1].setId(i-1);
tv[i-1].setTextSize(28);
if((i!=0&&i%4==0)){
final TableRow tr = new TableRow(tb.getContext());
tr.setId(j);
tr.setLayoutParams(new TableRow.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
));
tr.setBackgroundColor(Color.parseColor("#FFFFFF"));
tr.addView(tv[i-4], new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,1));
tr.addView(tv[i-3], new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,1));
tr.addView(tv[i-2], new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,1));
tr.addView(tv[i-1], new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,1));
tb.addView(tr,new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.FILL_PARENT));
tr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//tr.setFocusable(true);
tr.setFocusableInTouchMode(true);
}
});
final TableRow tr1 = new TableRow(tb.getContext());
final View row = tr.getChildAt(i);
tr.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
//if(){
//final TableRow tr = new TableRow(tb.getContext());
if(tr.getId() != tr1.getId()){
//Log.d("인덱스?",Integer.toString(tr.getId()));
Log.d("인덱스?",Integer.toString(tb.indexOfChild(row)));
//Log.d("인덱스?",Integer.toString(tr1.getId()));
tr1.setBackgroundColor(Color.parseColor("#FFFFFF"));
tr.setBackgroundColor(Color.parseColor("#DFDFDF"));
}
}
});
}
}
count = count + Integer.parseInt(strarray[2]);
sum = sum + Integer.parseInt(strarray[3]);
strarray3 = new String[] {Integer.toString(j)," ",Integer.toString(count),Integer.toString(sum)};
appendRow1(strarray3);
}
이게 TableRow를 동적으로 생성해주는 부분입니다.




헐.. 리스트뷰 놔두고 이게 무슨..ㅠㅠㅠ