gpt4 book ai didi

java - 如何将listview中的textview传回php

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:59 25 4
gpt4 key购买 nike

对于此功能,我需要将自定义 ListView 中提到的项目从 Activity1.java 传递回 php,以便从 mysql 检索另一个 Activity 中有关该特定项目的更多信息(包括通过 Picasso 库的图像),以便我知道 php 文件是否正确以及应该如何打开 Activity2.java

Activity1.java

public class Activity1 extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView lv= (ListView) findViewById(R.id.listview);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
String name =((TextView) findViewById(R.id.itemname)).getText().toString();
Intent intent = new Intent(Activity1.this, Activity2.class);
intent.putExtra("NAME", name);
startActivity(intent);
}
});
}

}

Detail.php

<?php
include 'dbConnect.php';
mysqli_set_charset($conn, 'utf8');
$NAME = $_POST['NAME'];

$sql = "SELECT * FROM items WHERE item_name = '$NAME'" ;
result = $conn->query($sql);

if ($result->num_rows >0) {
while($row[] = $result->fetch_assoc()) {
$tem = $row;
$json = json_encode($tem);
}
} else {
echo "No Results Found.";
}
echo $json;
$conn->close();
?>

最佳答案

我建议您使用Retrofit 2 library用于发出 REST 请求,这正是您所需要的。

首先将以下依赖项添加到您的 build.gradle 文件中

dependencies {  
// Retrofit & OkHttp
compile 'com.squareup.retrofit2:retrofit:2.3.0'

// JSON Converter
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
}

您需要创建一个界面来描述您的 Retrofit 服务。在你的情况下,它看起来像这样(不要把/放在开头路径):

public interface PhpService {
@FormUrlEncoded
@POST("path/to/your/web/resource")
Call<Item> searchForItem(@Field("NAME") String itemName);
}

您需要创建一个描述您的项目的类(您必须自己编写该类,因为我不知道实际的字段):

class Item {
@SerializedName("name")
String name;

@SerializedName("url")
String imageUrl;
}

现在您需要像这样创建实际服务(将 baseUrl 替换为您的网站):

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://yourwebsite.com/")
.build();

PhpService service = retrofit.create(PhpService.class);

现在,使用创建的服务,您可以向您的 php 网络服务器发出请求:

Call<Item> item = service.searchForItem("yourItemName");

call.enqueue(new Callback<Item>() {
@Override
public void onResponse(Call<Item> call, Response<Item> response) {
if (response.isSuccessful()) {
Itemitem = response.body();
// todo do stuff with your item
}
}

@Override
public void onFailure(Call<Item> call, Throwable t) {
// the network call was a failure
// TODO: handle error
}
});

这应该是从 php 脚本中获取项目的全部内容。

如果您需要更多帮助,请查看此 tutorial by futurestud.io .

关于java - 如何将listview中的textview传回php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com