我使用以下代码进行我的主要活动:
private TripsData datasource; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); datasource = new TripsData(this); datasource.open(); List values = datasource.getAllTrips(); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values); setListAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // Will be called via the onClick attribute // of the buttons in main.xml public void onClick(View view) { @SuppressWarnings("unchecked") ArrayAdapter adapter = (ArrayAdapter) getListAdapter(); Trip trip = null; //Trip trip_temp; switch (view.getId()) { case R.id.add: trip=newTrip(view); //trip.setId(trip_temp.getId()); //trip.setName(trip_temp.getName()); adapter.add(trip); break; case R.id.delete: if (getListAdapter().getCount() > 0) { trip = (Trip) getListAdapter().getItem(0); datasource.deleteTrip(trip); adapter.remove(trip); } break; } adapter.notifyDataSetChanged(); } @Override protected void onResume() { datasource.open(); super.onResume(); } @Override protected void onPause() { datasource.close(); super.onPause(); } public Trip newTrip(View view){ final Trip trip=new Trip(); //create DialogBox final Dialog dialog = new Dialog(this); //modify features BEFORE setting content view //dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.project_dialog); //Create EditBoxes for Dialog final EditText nameEdit=(EditText) dialog.findViewById(R.id.dialog_name_text); final EditText descEdit=(EditText) dialog.findViewById(R.id.dialog_type_text); //define button's text View dialogButton=dialog.findViewById(R.id.dialog_button_create); TextView text=(TextView) dialogButton; text.setText("Create"); //Button Creation Button createButton = (Button) dialogButton; // if button is clicked, close the custom dialog createButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Trip trip_temp = datasource.createTrip(nameEdit.getText().toString()); //String[] trips = new String[] { "Cool", "Very nice", "Hate it" }; //int nextInt = new Random().nextInt(3); // save the new comment to the database trip.setId(trip_temp.getId()); trip.setName(trip_temp.getName()); //trip = datasource.createTrip(nameEdit.getText().toString()); dialog.dismiss(); } }); dialog.show(); return trip; }
用户应该能够在对话框中输入值,并且名称将显示在创建的行程列表中。但是,当列表中只有一个值时,似乎存在一个bug,因为该项未显示。我花了好几个小时都弄不明白。
公共类TripsData{
private SQLiteDatabase database;
private TripsDB dbHelper;
private String[] allTrips = { TripsDB.TRIP_COLUMN_ID,
TripsDB.TRIP_COLUMN_TYPE};
public TripsData(Context context){
dbHelper = new TripsDB(context);
}
public void open() throws SQLException{
database = dbHelper.getWritableDatabase();
}
public void close(){
dbHelper.close();
}
public Trip createTrip(String type){
ContentValues values = new ContentValues();
values.put(TripsDB.TRIP_COLUMN_TYPE, type);
long insertId = database.insert(TripsDB.TABLE_TRIPS, null, values);
Cursor cursor = database.query(TripsDB.TABLE_TRIPS,
allTrips, TripsDB.TRIP_COLUMN_ID + " = " + insertId, null, null, null, null);
cursor.moveToFirst();
Trip newTrip = cursorToTrip(cursor);
cursor.close();
return newTrip;
}
public void deleteTrip(Trip trip){
long id = trip.getId();
System.out.println("Project deleted with id: " + id);
database.delete(TripsDB.TABLE_TRIPS, TripsDB.TRIP_COLUMN_ID
+ " = " + id, null);
}
public List<Trip> getAllTrips(){
List<Trip> trips = new ArrayList<Trip>();
Cursor cursor = database.query(TripsDB.TABLE_TRIPS,
allTrips, null, null, null, null, null);
cursor.moveToFirst();
while(!cursor.isAfterLast()){
Trip trip = cursorToTrip(cursor);
trips.add(trip);
cursor.moveToNext();
}
cursor.close();
return trips;
}
private Trip cursorToTrip(Cursor cursor){
Trip trip = new Trip();
trip.setId(cursor.getLong(0));
trip.setName(cursor.getString(1));
return trip;
}
问题似乎是TripsData类的问题,在删除一个项目后,还可以尝试记录适配器和数据源的长度。我猜这两个数字在某处不同步了。
问题内容: 我正在使用填充要在中列出的项目。一切正常。 但是现在我想保持项目列表的动态,即我希望能够在运行时从选择列表中添加/删除项目。但是,当我致电或时,我总是得到,即使该类的将这两种方法描述为可用于该预期目的也是如此。 这是一个错误,真的没有实现,还是我在这里遗漏了什么? 问题答案: 您可能使用普通的Java数组(例如,)初始化了适配器。尝试使用一些实现接口的东西(例如)。
问题内容: 我早些时候发布了这个问题,并被告知将其设为SSCCE(如果我可以进行任何改进,随时告诉我):我想知道为什么当单击我的按钮“确认”时,旧方块消失了,重新绘制的方块不会出现在我的GUI(使用摆动制作)上。Squares类绘制200个间隔开的正方形,其中的ID(从String,0、1、2或3作为字符串)从另一个类获得(出于这个问题的目的,我们假设它始终为0,不包括该类)。为了澄清:Squar
问题内容: 我的剧本 我的档案 我的输出 如果我在之后放一个空白行,则输出变为 任何人都知道如何解决此问题,所以不需要在末尾添加空白行? 问题答案: 发生的情况是,当 输入未以换行符终止 时,命令将失败。由于文件末尾缺少换行符,因此失败,因此将跳过循环的最后一次迭代。 如果您不想/不能确保输入文件的末尾有换行符,可以将您的文件与进行分组,以使输入的 外观 以换行符终止,例如: 或像这样:
我试图使一个客户端-服务器包成一个应用程序。因此,当应用程序打开时,服务器会自动进入待机/监听模式。问题是当运行服务器套接字时,它直到之后才显示gui。我希望gui和服务器套接字同时发生。 我已经注释掉了代码行,它按照预期工作,直到 我读过关于线程来解决这个问题的文章,但是我看到的例子都没有给出足够清晰的答案。我对python和编程还是相当陌生的。谢啦
包装呈现值;导入java。util。扫描仪; 公共类PresentValue{ }问题是写一个方法presentValue来执行此计算。该方法应接受未来值、年利率和年数作为参数。它应该返回现值,即您今天需要存入的金额。在一个程序中演示该方法,该程序允许用户试验公式项的不同值。 这里是公式P=F/(1r)^2
我使用fiddler监控一个简单的html内容从一个PHP文件运行在localhost。但是每当我按f5刷新页面(浏览器)时,在fiddler中有时整个web会话的字体变成蓝色,即当它实际显示内容(html)时,相反的情况发生在web会话是灰色的时候,它不显示html内容。 注意:始终显示请求/响应标题,这仅用于内容。我还尝试了点技巧(“:80”)并从localhost切换到127.0。0.1.