public class MainActivity extends Activity
{
//Spinner used for Main menu of the App Where user selects their choice
Spinner gSpinner,cSpinner,vSpinner;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
gSpinner = (Spinner) findViewById(R.id.spinner1);
cSpinner = (Spinner) findViewById(R.id.spinner2);
vSpinner = (Spinner) findViewById(R.id.spinner3);
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
// Three SPINNERS created here*****************
ArrayAdapter<String> spinnerArrayAdapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
spinnerArrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
gSpinner.setAdapter(spinnerArrayAdapter1);
gSpinner.setOnItemSelectedListener(onItemSelectedListener);
ArrayAdapter<String> spinnerArrayAdapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
spinnerArrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cSpinner.setAdapter(spinnerArrayAdapter2);
cSpinner.setOnItemSelectedListener(onItemSelectedListener1);
ArrayAdapter<String> spinnerArrayAdapter3 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
spinnerArrayAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
vSpinner.setAdapter(spinnerArrayAdapter3);
vSpinner.setOnItemSelectedListener(onItemSelectedListener2);
//Get the application's resources
resources = getResources();
try
{
//Load the file from the raw folder - don't forget to OMIT the extension
output = LoadFile("esv", true);
}
catch (IOException e)
{
//Display an error toast message
Toast toast = Toast.makeText(this, "File: not found!", Toast.LENGTH_LONG);
toast.show();
}
}
//LOAD FILES FROM THE APP "res/raw" FOLDER OR "assets" FOLDER
public InputStream LoadFile(String fileName, boolean loadFromRawFolder) throws IOException
{
//Create a InputStream to read the file into
InputStream iS;
if (loadFromRawFolder)
{
//get the resource id from the file name
int rID = resources.getIdentifier("com.example.john.semabible:raw/"+fileName, null, null);
//get the file as a stream
iS = resources.openRawResource(rID);
}
else
{
//get the file as a stream
iS = resources.getAssets().open(fileName);
}
return iS;
}
// the spinner's listener implementation - one for each spinner
// each implementation has a textview setText() that should update the text view // evrtime there is a change in the selection
OnItemSelectedListener onItemSelectedListener =
new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
operateXml(output);
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.menu);
// inflate (create) another copy of our custom layout
LayoutInflater inflater = getLayoutInflater();
View myLayout = inflater.inflate(R.layout.main_menu, mainLayout, false);
// make changes to our custom layout and its subviews
TextView textView = (TextView) myLayout.findViewById(R.id.tv);
textView.setText(vnText); //gives error
// add our custom layout to the main layout
mainLayout.addView(myLayout);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
};
OnItemSelectedListener onItemSelectedListener1 =
new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
operateXml(output);
LinearLayout mainLayout1 = (LinearLayout) findViewById(R.id.menu);
// inflate (create) another copy of our custom layout
LayoutInflater inflater = getLayoutInflater();
View myLayout = inflater.inflate(R.layout.main_menu, mainLayout1, false);
// make changes to our custom layout and its subviews
TextView textView = (TextView) myLayout.findViewById(R.id.tv);
textView.setText(vnText); //gives errors
// add our custom layout to the main layout
mainLayout1.addView(myLayout);
chapter = Integer.valueOf(parent.getItemAtPosition(position).toString());
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
};
OnItemSelectedListener onItemSelectedListener2 =
new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
operateXml(output);
LinearLayout mainLayout2 = (LinearLayout) findViewById(R.id.menu);
// inflate (create) another copy of our custom layout
LayoutInflater inflater = getLayoutInflater();
View myLayout = inflater.inflate(R.layout.main_menu, mainLayout2, false);
// make changes to our custom layout and its subviews
TextView textView = (TextView) myLayout.findViewById(R.id.tv);
textView.setText(vnText); //gives error
// add our custom layout to the main layout
mainLayout2.addView(myLayout);
verse = Integer.valueOf(parent.getItemAtPosition(position).toString());
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
};
取而代之的是:
textView.setText(vnText);
编写此代码:
textView.setText(parent.getItemAtPosition(position).toString());
取而代之的是:
OnItemSelectedListener onItemSelectedListener =
new OnItemSelectedListener()
写这个:
OnItemSelectedListener onItemSelectedListener =
new AdapterView.OnItemSelectedListener()
同样取而代之的是:
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
传递每个微调器的相应适配器,而不是父级:例如,对于微调器,它应该是这样的:
@Override
public void onItemSelected(AdapterView<?> spinnerArrayAdapter1, View view,
int position, long id)