目标是在扩展视图中工作。不在onCreate 我很确定问题在我宣布时开始:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( context,...);
我曾尝试使用.createFromResource( this,...)
但是甚至不会编译。
但程序运行正常,直到我使用setadapter
函数。我一直在努力使这项工作在onCreate
之外完成。
public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new Piano(this));
}
private class Piano extends View {
//keyboard array
private ShapeDrawable [] keyboard;
private int indx=0;
Spinner spinner = (Spinner) findViewById(R.id.dbox);
SurfaceView sandbx = (SurfaceView)findViewById(R.id.sandbox);
public Piano(Context context){
super(context);
context.getSystemService(DROPBOX_SERVICE);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
context, R.array.chord_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new Listen());
}
答案 0 :(得分:0)
为Spinner尝试此代码:
public class Spinner1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_1);
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
}
}
您可以扩展活动..而不是扩展视图。
答案 1 :(得分:0)
尝试改为
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(context, R.array.chord_list, android.R.layout.simple_spinner_item);
答案 2 :(得分:0)
将piano()构造函数内容放入onCreate方法或以其他方式调用onCreate方法中的钢琴视图。
每当初始化android组件时,你应该只调用活动生命周期方法。
无论您有钢琴视图(自定义视图)还是任何UI组件视图,您都应该在任何一个活动生命周期方法中调用它。或者你应该用XML调用它,如下所示:
<com.packagename.PianoView
android:layout_width="fill_parent"
.
.
/>
如果你接受这个投票给我