device-2012-11-23-171326.png








안녕하세요 제가 주문 관련 어플을 제작중인데요


화면디자인 구성을 저런형식으로 했습니다.


그런데 기능구현중 어려운부분이 있어서 이렇게 질문을 올리게되었습니다.


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를 동적으로 생성해주는 부분입니다.