【发布时间】:2015-07-13 19:51:49
【问题描述】:
在我的 android 应用程序中,当单击我的 ListView 中的项目时,它应该打开活动 FixtureDescription 每个项目应该打开相同的活动,但对于每个新项目,它都开始为空。这是我的 .java 文件,目前该列表已从 AlertDialog 正确填充,但是当单击它时,它不会从它所在的活动中移动。有什么建议吗?
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import static android.widget.AdapterView.*;
public class RoomDescription extends ActionBarActivity {
public AlertDialog.Builder dialogBuilder;
public ArrayList<String> myFixtures = new ArrayList<String>();
public String listItem;
private void setFixtureName()
{
dialogBuilder = new AlertDialog.Builder(this);
final EditText txtInput = new EditText(this);
dialogBuilder.setTitle("Fixture Name");
dialogBuilder.setMessage("What is the fixture name?");
dialogBuilder.setView(txtInput);
dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
myFixtures.add(txtInput.getText().toString());
populateListView();
Toast toast = Toast.makeText(getApplicationContext(), "Fixture has been added.", Toast.LENGTH_SHORT);
toast.show();
}
});
dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
AlertDialog dialogFixtureName = dialogBuilder.create();
dialogFixtureName.show();
}
public void onClick(View v)
{
setFixtureName();
}
public void onItemClick()
{
ListView list = (ListView) findViewById(R.id.FixtureList);
list.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
switch (position)
{
default:Intent i = new Intent(RoomDescription.this, FixtureDescription.class);
startActivity(i);
break;
}
}
});
}
private void populateListView()
{
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.items, myFixtures);
ListView list = (ListView) findViewById(R.id.FixtureList);
list.setAdapter(adapter);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_room_description);
populateListView();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_room_description, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
标签: android listview android-studio