Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:类中的构造函数无法应用于给定类型_Java_Android_Android Room - Fatal编程技术网

Java 错误:类中的构造函数无法应用于给定类型

Java 错误:类中的构造函数无法应用于给定类型,java,android,android-room,Java,Android,Android Room,如何将数据插入主键为(autoGenerate=true)的数据库 这是表格的代码 @Entity(tableName = "Account") public class Account { @PrimaryKey(autoGenerate = true) @ColumnInfo(index = true, name="ACCOUNT_ID") public int id; @NonNull @ColumnInfo private String bank; @NonNull @Colum

如何将数据插入主键为(autoGenerate=true)的数据库

这是表格的代码

@Entity(tableName = "Account")
 public class Account {

@PrimaryKey(autoGenerate = true)
@ColumnInfo(index = true, name="ACCOUNT_ID")
public int id;

@NonNull
@ColumnInfo
private String bank;

@NonNull
@ColumnInfo
private String bal;

public Account(int id, String bank, String bal) {
    this.id = id;
    this.bank = bank;
    this.bal = bal;}

public int getId(){return this.id;}
public String getBank(){return this.bank;}
public String getBal(){return this.bal;}
}
TableDao

@Dao
public interface AccountDao {
@Query("SELECT * from Account ORDER BY bank ASC")
LiveData<List<Account>> getAlphabetizedAccounts();


@Insert(onConflict = OnConflictStrategy.ABORT)
void insert(Account account);

@Query("DELETE FROM Account")
void deleteAll();
}
结果我正在做这件事

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == NEW_ACCOUNT_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
    Account account = new Account(data.getStringExtra(NewAccountActivity._BANK_NAME),data.getStringExtra(NewAccountActivity._AC_BAL));
    mAccountViewModel.insert(account);
} else {
    Toast.makeText(
            getApplicationContext(),
            R.string.empty_not_saved,
            Toast.LENGTH_LONG).show();
  }
 }
}

Error Line:Account account = new Account(data.getStringExtra(NewAccountActivity._BANK_NAME),data.getStringExtra(NewAccountActivity._AC_BAL));
我尝试了所有的删除和添加,但没有解决方案。我的构造函数有三个参数,我提供了两个。如何克服自动识别的问题确认任何更正。提前感谢。

根据来源: Intent getIntent():返回启动活动的意图。 因此,在startActivityForResult的情况下,使用(new Intent())getIntent()将更好地工作

对于@Primarykey(autoGenerate=True),使用0(零)。根据消息来源 如果字段类型为long或int(或其类型转换器将其转换为long或int),则插入项时,插入方法将0(零)视为未设置。 例如:

Table table =new Table(0, data1, data2,..);
mTable.insert(table);

最后我自己解决了我的问题。

粘贴所有可以粘贴的代码不会有任何效果。编译错误确实为您提供了所有需要了解的信息。您定义了一个有3个参数的帐户构造函数,但在MainActivity的第87行,您试图使用一个有2个参数的构造函数,而该构造函数不存在,因此出现编译错误。@Igor llin在我的问题id中设置为“自动生成”,然后我将如何设置它。
Table table =new Table(0, data1, data2,..);
mTable.insert(table);