我是 android 和 Java 的新手,我遇到了这个问题,我正在寻找答案,但我什么也没找到。
我正在尝试从数据库中获取一些数据并将其放入微调器中,但我遇到了这个问题:
构造函数 ArrayAdapter(AddNewUnit, int, String) 未定义
这是我的代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
public class AddNewUnit extends Activity implements OnItemSelectedListener {
EditText UnitName;
Spinner BookName;
DataBase dataBase;
String[][] Books;
String BookId;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_new_unit);
UnitName = (EditText) findViewById(R.id.ANU_EtUnitName);
BookName = (Spinner) findViewById(R.id.ANU_SBookName);
dataBase.open();
Books = dataBase.Get_Books();
dataBase.close();
ArrayAdapter<String> adapter =new ArrayAdapter<String>(AddNewUnit.this, android.R.layout.simple_spinner_item, Books[1][]);
BookName.setAdapter(adapter);
BookName.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
BookId=Books[0][BookName.getSelectedItemPosition()];
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
我的问题是这条线
ArrayAdapter<String> adapter =new ArrayAdapter<String>(AddNewUnit.this, android.R.layout.simple_spinner_item, Books[1][]);
我搜索并发现大多数错误都与他们写作时的上下文有关,this
但我写AddNewUnit.this
的是我的活动。
我做错了什么?
更多细节:
对不起,这是我第一次使用 java,我之前使用过 c++,在 c++ 中我Books[1][]
用来将数组从多维转换为单维,它只是从数组中获取第 1 行。
这个字符串有两行,一行用于书 ID,另一行用于书名,我只想传递第 1 行的书名。
有没有办法做到这一点,或者我必须使用 custom ArrayAdapter
?