将数据从ListView传递到OnClick时的活动



AuctionList.java

public class AuctionList extends AppCompatActivity {
ListView mListView;
ArrayList<Model> mList;
AuctionListAdapter mAdapter = null;
DatabaseHelperUpload mDBUpload;
TextView txtName,txtDescription,txtDuration,txtPrice;
ImageView imageViewIcon;
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.auction_list);
    mDBUpload = new DatabaseHelperUpload(this);
    mListView = findViewById(R.id.listView);
    mList = new ArrayList<>();
    mAdapter = new AuctionListAdapter(this,R.layout.row,mList);
    mListView.setAdapter(mAdapter);
    txtName = findViewById(R.id.txtName);
    txtDescription = findViewById(R.id.txtDescription);
    txtDuration = findViewById(R.id.txtDescription);
    txtPrice = findViewById(R.id.txtPrice);
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String name = txtName.getText().toString();
            String description = txtDescription.getText().toString();
            String price = txtPrice.getText().toString();
            String duration = txtDuration.getText().toString();
            Intent intent5 = new Intent(AuctionList.this,BuyerHome.class);
            intent5.putExtra("name",name);
            intent5.putExtra("description",description);
            intent5.putExtra("price",price);
            intent5.putExtra("duration",duration);
            startActivity(intent5);
        }
    });

activity.java

Bundle bundle = getIntent().getExtras();
    String duration = bundle.getString("duration");
    String price = bundle.getString("price");
    TextView durationLog = (TextView)findViewById(R.id.text_view_countdown);
    TextView priceLog = (TextView)findViewById(R.id.textPrice);
    durationLog.setText(duration);
    priceLog.setText(price);

model.java

public class Model {
private int id;
private String name;
private String duration;
private String description;
private String price;
private byte[] image;
public Model(int id, String name,String description,String price,String duration, byte[] image) {
    this.id = id;
    this.name = name;
    this.description = description;
    this.price = price;
    this.duration = duration;
    this.image = image;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public String getPrice() {
    return price;
}
public void setPrice(String price) {
    this.price = price;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getDuration() {
    return duration;
}
public void setDuration(String duration) {
    this.duration = duration;
}

public byte[] getImage() {
    return image;
}
public void setImage(byte[] image) {
    this.image = image;
}
}

Activity.java代码是部分的,因为我仍在尝试。因此,我只是想获取两个数据(持续时间和价格)。

但是,我有错误,并且我的应用程序不断崩溃。我愿意问我的代码有什么问题。我实际上有一个模型代码,如图所示。

错误是:

2019-03-23 00:30:58.046 11048-11048/com.example.jianminmong.aucon E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.jianminmong.aucon, PID: 11048
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
    at com.example.jianminmong.aucon.AuctionList$1.onItemClick(AuctionList.java:63)
    at android.widget.AdapterView.performItemClick(AdapterView.java:318)
    at android.widget.AbsListView.performItemClick(AbsListView.java:1159)
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3136)
    at android.widget.AbsListView$3.run(AbsListView.java:4052)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

在这里非常感谢您的帮助,因为这是我最后一年项目的最后一部分。顺便说一句,我是一个业余爱好者,所以我需要帮助。

我基本上只想从listView中检索数据,而只想初始化值,&amp;&amp;每当我按时,它不应继续重置数据,因为活动需要在后台运行(例如计时器)

当您从textView获取文本视图时,任何一个textView都不与xml绑定,这就是为什么您的应用程序崩溃的原因。

   mListView.setOnItemClickListener(new. 
   AdapterView.OnItemClickListener() {
       @Override
         public void onItemClick(AdapterView<?> parent, 
         View view, int position, long id) {
        String name = txtName.getText().toString();
        String description = 
         txtDescription.getText().toString();
        String price = txtPrice.getText().toString();
        String duration = txtDuration.getText().toString();
        Intent intent5 = new Intent(AuctionList.this,BuyerHome.class);
        intent5.putExtra("name",name);
        intent5.putExtra("description",description);
        intent5.putExtra("price",price);
        intent5.putExtra("duration",duration);
        startActivity(intent5);
    }
});

最新更新