【发布时间】:2016-03-25 01:45:13
【问题描述】:
首先我创建了一个计数器应用程序,它有两个 Button 和一个 EditText,其中一个 Button 具有增加计数的功能,而另一个具有减少计数的功能,这些结果显示在 EditText 中。 现在我希望将此计数器应用程序放置在 ListView 中。至少需要十个 Counter App 才能放置在 ListView 中。我尝试了一些代码,下面会附上一些图片。
我试过的代码附在下面
反活动
public class CounterActivity extends AppCompatActivity {
private ListView lstCount;
private CustomAdapter adapter;
private ArrayList<CountModel> mCount = new ArrayList<CountModel>();
final Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_counter);
lstCount = (ListView)findViewById(R.id.lst_counter);
adapter = new CustomAdapter(this,mCount);
lstCount.setAdapter(adapter);
}}
计数器模型
public class CountModel {
public EditText edtCount;
public Button btnDec;
public Button btnInc;
public EditText getEdtCount(){
return edtCount;
}
public void setEdtCount(EditText edtCount){
this.edtCount = edtCount;
}
public Button getBtnDec(){
return btnDec;
}
public void setBtnDec(Button btnDec){
this.btnDec = btnDec;
}
public Button getBtnInc(){
return btnInc;
}
public void setBtnInc(Button btnInc){
this.btnInc = btnInc;
}
public CountModel(Button btnDec ,EditText edtCount , Button btnInc){
this.btnDec = btnDec;
this.edtCount = edtCount;
this.btnInc = btnInc;
}
public CountModel(){
}}
自定义适配器
public class CustomAdapter extends BaseAdapter {
int counter = 0;
int maxcounter=20;
private ArrayList<CountModel>mCount = new ArrayList<CountModel>();
Context context;
public CustomAdapter(Context context, ArrayList<CountModel> count) {
this.context = context;
this.mCount=count;
}
@Override
public int getCount() {
return mCount.size();
}
@Override
public Object getItem(int position) {
return mCount.get(position);
}
@Override
public long getItemId(int position) {
return mCount.indexOf(getItemId(position));
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyViewHolder myViewHolder = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.activity_counter, null);
myViewHolder = new MyViewHolder();
myViewHolder.btnDec = (Button) convertView.findViewById(R.id.btn_dec);
myViewHolder.btnInc = (Button) convertView.findViewById(R.id.btn_inc);
myViewHolder.edtCount = (EditText) convertView.findViewById(R.id.edt_count);
convertView.setTag(myViewHolder);
} else {
myViewHolder = (MyViewHolder) convertView.getTag();
}
final String mEdtCount = myViewHolder.edtCount.toString();
myViewHolder.edtCount.setOnEditorActionListener(mCount.get(position).getEdtCount());
myViewHolder.btnDec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (counter >0 && counter <=20) {
counter--;
mEdtCount.setText(Integer.toString(counter));
}else
if (counter<0){
mEdtCount.setText(Integer.toString(counter));
}
}
}.mCount.get(position).getBtnDec());
myViewHolder.btnInc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counter++;
if (counter >0 && counter <=20) {
mEdtCount.setText(Integer.toString(counter));
}else if(counter >20){
counter--;
mEdtCount.setText(Integer.toString(maxcounter));
}
}
}.mCount.get(position).getBtnInc());
return convertView;
}
private class MyViewHolder {
Button btnInc;
Button btnDec;
EditText edtCount;
}}
我正面临这些错误
C:\Users\Rahul\Documents\AndroidStudioWorkSpace\CounterInListView\app\src\main\java\com\example\rahul\counterinlistview\CustomAdapter.java
Error:(61, 21) error: cannot find symbol variable mEdtCount
Error:(67, 30) error: cannot find symbol method setText(String)
Error:(70, 30) error: cannot find symbol method setText(String)
Error:(74, 10) error: cannot find symbol variable mCount
Error:(80, 30) error: cannot find symbol method setText(String)
Error:(83, 30) error: cannot find symbol method setText(String)
Error:(87, 10) error: cannot find symbol variable mCount
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
【问题讨论】:
标签: java android listview android-listview baseadapter