Java 无法解析或不是包含某些编辑文本的字段

Java 无法解析或不是包含某些编辑文本的字段,java,android,Java,Android,好的,我有以下情况:我动态创建了一些EditExt,当最后一行中的一个EditText被单击时,我想添加另一行EditExt。 我尝试了以下方法: 创建最后一行EditText时,我会为它们分配一个id et.setId(997); et.setId(998); et.setId(999) 我宣布了他们中的每一个; 公共编辑文本camp1; 公共编辑文本2; 公共编辑文本3 camp1 = (EditText) findViewById(997); camp2 = (EditText) find

好的,我有以下情况:我动态创建了一些EditExt,当最后一行中的一个EditText被单击时,我想添加另一行EditExt。 我尝试了以下方法:

创建最后一行EditText时,我会为它们分配一个id
et.setId(997);
et.setId(998);
et.setId(999)

我宣布了他们中的每一个;
公共编辑文本camp1;
公共编辑文本2;
公共编辑文本3

camp1 = (EditText) findViewById(997);
camp2 = (EditText) findViewById(998);
camp3 = (EditText) findViewById(999);

camp1.setOnClickListener(this);
camp2.setOnClickListener(this);
camp3.setOnClickListener(this);
当我试着这么做的时候
案例R.id.camp1:
在交换机内部,我得到“camp1无法解析或不是字段”
我做错了什么? 是否有更好的方法来检测何时单击最后一个编辑文本并创建一个新的编辑文本

编辑:

公共类MainActivity扩展活动实现OnClickListener, 文本观察者{

public Button paginanoua;
// public Button calculeaza;
public Button produsnou;
public EditText camp1;
public EditText camp2;
public EditText camp3;

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

    produsnou();
    paginanoua = (Button) findViewById(R.id.paginanoua);
    // calculeaza = (Button) findViewById(R.id.calculeaza);
    produsnou = (Button) findViewById(R.id.produsnou);
    camp1 = (EditText) findViewById(997);
    camp2 = (EditText) findViewById(998);
    camp3 = (EditText) findViewById(999);
    paginanoua.setOnClickListener(this);
    // calculeaza.setOnClickListener(this);
    produsnou.setOnClickListener(this);
    camp1.setOnClickListener(this);
    camp2.setOnClickListener(this);
    camp3.setOnClickListener(this);

}

public void onClick(View view) {
    switch(view.getId())
    {
    case R.id.paginanoua:
    ShowDialog();


    case R.id.produsnou:
        produsnou();

case R.id.997:///error
produsnou();

}
}

private void ShowDialog() {

    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    dialogBuilder.setTitle("Pagina noua..");
    dialogBuilder.setMessage("Sigur doriti o pagina noua?");
    dialogBuilder.setPositiveButton("Da",
            new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {

                    Toast.makeText(getApplicationContext(),
                            "Am inceput o lista noua", Toast.LENGTH_SHORT)
                            .show();
                    Intent intent = getIntent();
                    finish();
                    startActivity(intent);
                }

            });
    dialogBuilder.setNegativeButton("Nu",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    Toast.makeText(getApplicationContext(),
                            "Ramanem la lista curenta", Toast.LENGTH_SHORT)
                            .show();
                }
            });
    AlertDialog alertDialog = dialogBuilder.create();
    alertDialog.show();
}

List<EditText> allpret = new ArrayList<EditText>();
List<EditText> allcant = new ArrayList<EditText>();
List<Float> alltotal = new ArrayList<Float>();
float totaltest = 0;

public void produsnou() {
    LinearLayout l1 = (LinearLayout) findViewById(R.id.layout1);
    EditText et = new EditText(this);
    et.setHint("Produs");
    l1.addView(et);
    et.addTextChangedListener(this);
    et.setId(997);

    LinearLayout l2 = (LinearLayout) findViewById(R.id.layout2);
    EditText et2 = new EditText(this);
    et2.setHint("Cantitate");
    et2.setInputType(InputType.TYPE_CLASS_NUMBER
            | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    et2.setId(998);

    allcant.add(et2);
    l2.addView(et2);
    et2.addTextChangedListener(this);

    LinearLayout l3 = (LinearLayout) findViewById(R.id.layout3);
    EditText et3 = new EditText(this);
    et3.setHint("Pret");
    et3.setInputType(InputType.TYPE_CLASS_NUMBER
            | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    l3.addView(et3);
    et3.setId(999);
    allpret.add(et3);
    et3.addTextChangedListener(this);
}

float temp = 0;

public void calculeaza() {
    totaltest = 0;
    String[] cant = new String[allcant.size()];

    for (int j = 0; j < allcant.size(); j++) {

        cant[j] = allcant.get(j).getText().toString();
        if (cant[j].matches("")) {
            Toast.makeText(this,
                    "Ati omis cantitatea de pe pozitia " + (j + 1),
                    Toast.LENGTH_SHORT).show();
            cant[j] = Float.toString(0);

        }
    }

    String[] pret = new String[allcant.size()];
    for (int k = 0; k < allpret.size(); k++) {
        pret[k] = allpret.get(k).getText().toString();
        if (pret[k].matches("")) {
            Toast.makeText(this,
                    "Ati omis pretul de pe pozitia " + (k + 1),
                    Toast.LENGTH_SHORT).show();
            pret[k] = Float.toString(0);

        }
    }

    for (int l = 0; l < allpret.size(); l++) {

        Float temp = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
        alltotal.add(temp);
        totaltest = totaltest + temp;
        // totaluri[l] = temp ; }

        TextView totalf = (TextView) findViewById(R.id.total);
        totalf.setText(String.format("Total: %.2f", totaltest));

    }
}

// Float[] totaluri = new Float[allcant.size()];

public void reload(View v) {

    Intent intent = getIntent();
    finish();
    startActivity(intent);
    calculeaza();
}

@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub
    calculeaza();

}
公共按钮paginanoua;
//公共按钮计算器;
公共按钮产品;
公共编辑文本1;
公共编辑文本2;
公共编辑文本3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
produsnou();
paginanoua=(按钮)findViewById(R.id.paginanoua);
//calculeaza=(按钮)findViewById(R.id.calculeaza);
produsnou=(按钮)findviewbyd(R.id.produsnou);
camp1=(EditText)findViewById(997);
camp2=(EditText)findViewById(998);
camp3=(EditText)findViewById(999);
paginanoua.setOnClickListener(这个);
//calculeaza.setOnClickListener(本);
produnsou.setOnClickListener(this);
camp1.setOnClickListener(本);
camp2.setOnClickListener(本);
camp3.setOnClickListener(本);
}
公共void onClick(视图){
开关(view.getId())
{
案例R.id.paginanoua:
ShowDialog();
案例R.id.PRODUNSOU:
produsnou();
案例R.id.997:///错误
produsnou();
}
}
私有void ShowDialog(){
AlertDialog.Builder dialogBuilder=新建AlertDialog.Builder(此);
dialogBuilder.setTitle(“Pagina noua.”);
setMessage(“Sigur doriti o pagina noua?”);
dialogBuilder.setPositiveButton(“Da”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
Toast.makeText(getApplicationContext(),
“我是李斯塔·努阿”,吐司,长度(短)
.show();
Intent=getIntent();
完成();
星触觉(意向);
}
});
dialogBuilder.setNegativeButton(“Nu”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
Toast.makeText(getApplicationContext(),
“拉马内姆拉利斯塔古风”,吐司,长度(短)
.show();
}
});
AlertDialog AlertDialog=dialogBuilder.create();
alertDialog.show();
}
List allpret=new ArrayList();
List allcant=new ArrayList();
List alltotal=new ArrayList();
浮点数测试=0;
公共无效产品编号(){
LinearLayout l1=(LinearLayout)findViewById(R.id.layout1);
EditText et=新的EditText(本);
et.setHint(“Produs”);
l1.添加视图(et);
et.addTextChangedListener(此);
et.setId(997);
LinearLayout l2=(LinearLayout)findViewById(R.id.layout2);
EditText et2=新的EditText(本);
et2.setHint(“康蒂塔特”);
et2.设置输入类型(输入类型.类型\类别\编号
|输入类型。类型\编号\标志\小数);
et2.setId(998);
全部添加(et2);
l2.addView(et2);
et2.addTextChangedListener(本);
LinearLayout l3=(LinearLayout)findViewById(R.id.layout3);
EditText et3=新的EditText(本);
et3.setHint(“Pret”);
et3.设置输入类型(输入类型.类型\类别\编号
|输入类型。类型\编号\标志\小数);
l3.添加视图(et3);
et3.setId(999);
全部预加(et3);
et3.addTextChangedListener(本);
}
浮动温度=0;
公共图书馆{
totaltest=0;
字符串[]铁路超高=新字符串[allcant.size()];
对于(int j=0;j

}你所关心的只是最后一次编辑文本,对吗?只需给出最后一段文字
    @Override
    public void onClick(View view) {
        EditText editText = new EditText(YourActivityName.this);
        editText.setOnClickListener(new myListener());
        //TODO put it in your viewGroup

        //Give the old EditText your standard onClickListener
        view.setOnClickListener(YourActivityName.this);
        //To change body of implemented methods use File | Settings | File Templates.
    }
}