Joe*_*Joe 1 android android-arrayadapter
我一直试图建立一个简单onClickListener的Android活动,扩展ListActivity.
在create方法的这个类中,我创建了一个微调器对象,当用户选择一个项时,将arrayAdapter创建一个列表项,具体取决于用户选择的内容(从游标请求填充).这是在同一个类中的另一个方法中生成的.
ArrayAdapter<String> playerAdapter = new ArrayAdapter<String>(this,
R.layout.match_update_rows, R.id.player_name, playerItems);
setListAdapter(playerAdapter);
Run Code Online (Sandbox Code Playgroud)
我正在尝试在这个新列表上添加一个点击监听器.我已经添加了:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent i = new Intent(this, PlayerFixtureScore.class);
i.putExtra("RowId", id);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到了错误protected void onListItemClick.
Multiple markers at this line
- Syntax error on token ")", ; expected
- Syntax error on token ",", ; expected
- Duplicate local variable position
- Syntax error on token ",", ; expected
- Duplicate local variable id
- Duplicate local variable l
- Syntax error on token "(", ; expected
- Duplicate local variable v
- Syntax error on token ",", ; expected
- void is an invalid type for the variable
onListItemClick
Run Code Online (Sandbox Code Playgroud)
另外,如果我选择这onListItemClick条线,Eclipse说'void is an invalid type for the variable onListItemClick'?
所有工作,如果我删除点击监听器代码,只是无法弄清楚如何在arrayAdapter项目上添加监听器,以便我可以告诉用户点击了哪个项目 - 任何帮助赞赏!
根据MyD的要求 - 这是完整的课程列表:感谢您的快速回复.在回答MByD时,这里是这个类的完整代码清单.任何建议赞赏!
public class MatchUpdate extends ListActivity {
/** Called when the activity is first created. */
private int cursorCounter = 0;
private int spinnerSelected;
/** Set up the db for inital use */
DataBaseHelper myDbHelper = new DataBaseHelper(this);
Match match;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.match_update);
try {
myDbHelper.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelper.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
// create a spinner for fixture selection
Spinner fixtureSpin = (Spinner) findViewById(R.id.fixtures);
// Get all fixtures for Spinner...
Cursor cur = myDbHelper.getFixtures();
// create match object for cursor results
match = new Match(cur.getCount());
// Populate match object with Cursor results
for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {
match.setFixtureId(cursorCounter, cur.getInt(0));
match.setHomeId(cursorCounter, cur.getInt(1));
match.setHomeTeam(cursorCounter, cur.getString(2));
match.setAwayId(cursorCounter, cur.getInt(3));
match.setAwayTeam(cursorCounter, cur.getString(4));
match.setDate(cursorCounter, cur.getString(5));
cursorCounter++;
}
// Set up adapters for fixture spinner
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, match.getFixtureList());
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Set up fixture spinner
fixtureSpin.setAdapter(adapter);
// Set fixture spinner listener
fixtureSpin.setOnItemSelectedListener(new MyOnItemSelectedListener());
}
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
spinnerSelected = parent.getSelectedItemPosition();
updatePlayers(match);
}
public void onNothingSelected(AdapterView<?> parent) {
// Do nothing.
}
}
public void updatePlayers(Match thisMatch) {
// Get players for selected fixture based on Spinner selection
Cursor playerCur = myDbHelper.getFixturePlayers(
thisMatch.getHomeId(spinnerSelected),
thisMatch.getAwayId(spinnerSelected));
// set up simple ArrayAdapter to hold player names
String[] playerItems;
playerItems = new String[playerCur.getCount()];
int cnt = 0;
// pull player data from cursor, into a simple array
for (playerCur.moveToFirst(); !playerCur.isAfterLast(); playerCur
.moveToNext()) {
playerItems[cnt] = playerCur.getString(0);
cnt++;
}
ArrayAdapter<String> playerAdapter = new ArrayAdapter<String>(this,
R.layout.match_update_rows, R.id.player_name, playerItems);
setListAdapter(playerAdapter);
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent i = new Intent(this, PlayerFixtureScore.class);
i.putExtra("RowId", id);
startActivity(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7040 次 |
| 最近记录: |