我正在为音乐家开发应用(初学者应用)。它由一个EditText
,一个Spinner
,一个TextView
和一个Button
组成。用户将在EditText
中输入和弦进行(例如:C,D,E,A)。然后,用户可以选择半音的数量来向上或向下移动/移动他的和弦滑动。例如,如果他选择2个半音,TextView
中的结果将显示:D,E,F#,B。
我的EditText
中的和弦被分割成这样的字符串数组(在onClick
方法中):
// LOAD INPUT
input =(EditText)findViewById(R.id.chords);
String chords=input.getText().toString();
String separate[]=chords.split(",");
Spinner
的选择是在onCreate
方法中执行的:
public void onItemSelected(AdapterView<?> arg0, View view, int pos, long id) {
selected = spinner.getSelectedItem().toString();
}
现在,在我的onClick
方法中,由我的唯一Button
执行,我有这个(除了那个和平// LOAD INPUT):
public void proceed (View view){ //my onClick Method
.
. //here is the "LOAD INPUT" part
.
String[] tones = {"C","Cis","D","Dis","E","F","Fis","G","Gis","A","Ais","B"};
String[] result1;
int l =separate.length; //length of separate[]
for(int k=0; k<=l; k++){
Log.e("LOOP", "LOOP");
// INPUT POSITION
int i= Arrays.asList(tones).indexOf(separate[k]);
// RESULT INDEX
int j =Integer.parseInt(selected);
int index = i+j;
// RESULT
String res=tones[index];
result1[k]=res;
}
TextView result =(TextView)findViewById(R.id.result);
result.setText(Arrays.toString(result1));
}
一切正常,但循环不循环。它根本不会执行。我试图把它放到AsyncTask
中,但正如你所看到的,我需要在String[]
单独和字符串选中的情况下工作。我只能将其中一个传递给我的AsyncTask
。我希望很清楚。有人可以帮帮我吗?