我的代码中有一些问题,希望有人可以帮助我, 好的,我们只是关于他的问题:
这是我的主页的代码
-----------------------------------------------------
package com.buanasoft.toko;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class f_penjualan extends Activity {
private long rowID;
private TextView nm_barangTv;
private TextView hargaTv;
private TextView h_jualTv;
private TextView satuanTv;
private TextView stokTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.f_penjualan);
setUpViews();
Bundle extras = getIntent().getExtras();
rowID = extras.getLong(f_data.ROW_ID);
Button go = (Button)findViewById(R.id.btn_pilih);
Intent i = this.getIntent();
go.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(getApplicationContext(), daftar_barang.class);
startActivity(i);
}
});
}
private void setUpViews() {
nm_barangTv = (TextView) findViewById(R.id.namaBarangText);
hargaTv = (TextView) findViewById(R.id.hargaBarangText);
h_jualTv = (TextView) findViewById(R.id.hargaJualText);
satuanTv = (TextView) findViewById(R.id.satuanText);
stokTv = (TextView) findViewById(R.id.stokText);
}
@Override
protected void onResume()
{
super.onResume();
new LoadBarang().execute(rowID);
}
private class LoadBarang extends AsyncTask<Long, Object, Cursor>
{
DBCon_barang dbCon_barang = new DBCon_barang(f_penjualan.this);
@Override
protected Cursor doInBackground(Long... params)
{
dbCon_barang.open();
return dbCon_barang.getOneBarang(params[0]);
}
@Override
protected void onPostExecute(Cursor result)
{
super.onPostExecute(result);
result.moveToFirst();
// get the column index for each data item
int nm_barangIndex = result.getColumnIndex("nm_barang");
int hargaIndex = result.getColumnIndex("harga");
int h_jualIndex = result.getColumnIndex("h_jual");
int satuanIndex = result.getColumnIndex("satuan");
int stokIndex = result.getColumnIndex("stok");
nm_barangTv.setText(result.getString(nm_barangIndex));
hargaTv.setText(result.getString(hargaIndex));
h_jualTv.setText(result.getString(h_jualIndex));
satuanTv.setText(result.getString(satuanIndex));
stokTv.setText(result.getString(stokIndex));
result.close();
dbCon_barang.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.det_data_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.editItem:
Intent addEditBarang =
new Intent(this, AddEditBarang.class);
addEditBarang.putExtra(f_data.ROW_ID, rowID);
addEditBarang.putExtra("nm_barang", nm_barangTv.getText());
addEditBarang.putExtra("harga", hargaTv.getText());
addEditBarang.putExtra("h_jual", h_jualTv.getText());
addEditBarang.putExtra("satuan", satuanTv.getText());
addEditBarang.putExtra("stok", stokTv.getText());
startActivity(addEditBarang);
return true;
case R.id.deleteItem:
deleteBarang();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void deleteBarang()
{
AlertDialog.Builder alert = new AlertDialog.Builder(f_penjualan.this);
alert.setTitle(R.string.confirmTitle);
alert.setMessage(R.string.confirmMessage);
alert.setPositiveButton(R.string.delete_btn,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
final DBCon_barang dbCon_barang =
new DBCon_barang (f_penjualan.this);
AsyncTask<Long, Object, Object> deleteTask =
new AsyncTask<Long, Object, Object>()
{
@Override
protected Object doInBackground(Long... params)
{
dbCon_barang.deleteBarang(params[0]);
return null;
}
@Override
protected void onPostExecute(Object result)
{
finish();
}
};
deleteTask.execute(new Long[] { rowID });
}
}
);
alert.setNegativeButton(R.string.cancel_btn, null).show();
}
}
这是我第二次活动的代码
----------------------------------------------------------
public class daftar_barang extends ListActivity {
public static final String ROW_ID = "row_id";
private ListView conListView;
private CursorAdapter conAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
////script untuk memampilkan daftar barang & menu
conListView=getListView();
conListView.setOnItemClickListener(viewConListener);
// mengisi value di TextView
String[] from = new String[] { "nm_barang" };
int[] to = new int[] { R.id.daftar_barang };
conAdapter = new SimpleCursorAdapter(daftar_barang.this, R.layout.daftar_barang, null, from, to);
setListAdapter(conAdapter); // set adapter
}
@Override
protected void onResume()
{
super.onResume();
new GetData().execute((Object[]) null);
}
@Override
protected void onStop()
{
Cursor cursor = conAdapter.getCursor();
if (cursor != null)
cursor.deactivate();
conAdapter.changeCursor(null);
super.onStop();
}
private class GetData extends AsyncTask<Object, Object, Cursor>
{
DBCon_barang dbConnector = new DBCon_barang(daftar_barang.this);
@Override
protected Cursor doInBackground(Object... params)
{
dbConnector.open();
return dbConnector.getAllBarang();
}
@Override
protected void onPostExecute(Cursor result)
{
conAdapter.changeCursor(result); // set the adapter's Cursor
dbConnector.close();
}
}
//fungsi untuk melihat detail barang
OnItemClickListener viewConListener = new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
Intent viewCon = new Intent(daftar_barang.this,f_penjualan.class);
viewCon.putExtra(ROW_ID, arg3);
startActivity(viewCon);
}
};
}
她的问题是=
我想将第二个活动中的数据项显示给第一个活动。
所以当我进入第二个活动并点击第二个活动中的一个数据时,他将在第一个活动中显示。
在一段代码中没有错误警告,但是在我构建之后,当我打开活动时我的应用程序错误。
请让我知道他的问题的位置:(
答案 0 :(得分:0)
您的问题出在第一项活动的onCreate()
中。你有这个代码:
Bundle extras = getIntent().getExtras();
rowID = extras.getLong(f_data.ROW_ID);
首次启动您的活动时,它不会包含任何额外内容,因此对getIntent().getExtras()
的调用将返回null
。然后,下一个语句将抛出NullPointerException
。在调用extras == null
之前,您需要先检查getLong()
。