Java 将片段列表视图的单击项添加到另一个片段的列表视图
我正在安卓应用程序上工作。我在选项卡布局中有两个片段。这两个片段都有带有自定义适配器的列表视图。片段一加载一个列表,我想将片段1的listview的选定项添加到片段2的listview。一段代码,我的适配器如下所示Java 将片段列表视图的单击项添加到另一个片段的列表视图,java,android,listview,Java,Android,Listview,我正在安卓应用程序上工作。我在选项卡布局中有两个片段。这两个片段都有带有自定义适配器的列表视图。片段一加载一个列表,我想将片段1的listview的选定项添加到片段2的listview。一段代码,我的适配器如下所示 public class TestFragment2 extends Fragment{ TextView textView; public ListView listView; String text; static YukilanAdapter y
public class TestFragment2 extends Fragment{
TextView textView;
public ListView listView;
String text;
static YukilanAdapter yukilanAdapter;
private static List<YukilanModel> list = new ArrayList<YukilanModel>();
static OkHttpClient client;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
yukilanAdapter=new YukilanAdapter(list,getContext());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_test2, container, false);
GetTask getTask=new GetTask();
getTask.execute();
listView=(ListView)rootView.findViewById(R.id.yukilanliste_view);
listView.setAdapter(yukilanAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
return rootView;
}
static class GetTask extends AsyncTask<String, Void, String> {
List<YukilanModel> gelenveri;
private Exception exception;
protected String doInBackground(String... urls) {
try {
ClientOlustur();
String getResponse = get("url");
return getResponse;
} catch (Exception e) {
this.exception = e;
return null;
}
}
protected void onPostExecute(String getResponse) {
try {
Log.d("TEST FRAGMENT2","EXECUTED");
JSONObject jsonObject = new JSONObject(getResponse);
JSONArray yukilanarray = jsonObject.getJSONArray("result");
gelenveri = new ArrayList<>();
for (int i = 0; i < yukilanarray.length(); i++) {
YukilanModel yeniilan = new YukilanModel();
JSONObject yukilanobject = yukilanarray.getJSONObject(i);
yeniilan.setSehir(yukilanobject.getString("a_sehir"));
yeniilan.setHedefsehir(yukilanobject.getString("hedef_sehir"));
yeniilan.setYukcins(yukilanobject.getString("yukcins"));
yeniilan.setAgirlik(yukilanobject.getString("agirlik"));
yeniilan.setArac(yukilanobject.getString("aractipi"));
/* if (yukilanobject.getString("yukcins").equals("sebze"))
{
yeniilan.setResim(getContext().getResources().getDrawable(R.drawable.sebze));
}*/
gelenveri.add(yeniilan);
}
} catch (Exception e) {
Log.d("error", e.toString());
return;
}
list.clear();
list.addAll(gelenveri);
yukilanAdapter.notifyDataSetChanged();
// listView.setAdapter(tazele);
}
public String get(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
public void ClientOlustur() {
client = new OkHttpClient.Builder()
.authenticator(new Nakliyeauthenticator())
.build();
}
class Nakliyeauthenticator implements Authenticator {
//gets called if server responds with 401 http response to retry authentication
@Override
public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic("user", "password");
//prevent infinite loop , if same credentials already tired, no need to try again
if (credential.equals(response.request().header("Authorization"))) {
return null;
}
return response.request().newBuilder()
.header("Authorization", credential)
.build();
}
}
}
@Override
public void onResume() {
super.onResume();
}
}
公共类TestFragment2扩展了片段{
文本视图文本视图;
公共列表视图列表视图;
字符串文本;
静态YukilanAdapter YukilanAdapter;
私有静态列表=新的ArrayList();
静态Okhttp客户端;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
yukilanAdapter=新的yukilanAdapter(list,getContext());
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图根视图=充气机。充气(R.layout.fragment_test2,容器,false);
GetTask GetTask=新GetTask();
getTask.execute();
listView=(listView)rootView.findViewById(R.id.yukilanliste_视图);
setAdapter(yukilanAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
}
});
返回rootView;
}
静态类GetTask扩展了异步任务{
罗列格伦韦里;
私人例外;
受保护的字符串doInBackground(字符串…URL){
试一试{
阴蒂光泽();
字符串getResponse=get(“url”);
返回getResponse;
}捕获(例外e){
这个异常=e;
返回null;
}
}
受保护的void onPostExecute(字符串getResponse){
试一试{
日志d(“测试片段2”,“已执行”);
JSONObject JSONObject=新的JSONObject(getResponse);
JSONArray yukilanarray=jsonObject.getJSONArray(“结果”);
gelenveri=newarraylist();
对于(int i=0;i
我的适配器看起来像这样
公共类YukilanAdapter扩展了ArrayAdapter{
私有静态最终字符串键_ADRES=“Şehir:”;
私有静态最终字符串密钥_TAKIPKODU=“TAKIPKODU:”;
私有静态最终字符串键_AGIRLIK=“Ağrlık:”;
私有静态最终字符串键_YUKCINS=“YUKCINS:”;
Okhttp客户端;
弦乐;
私有列表veriliste;
公共YukilanAdapter(列表veriliste,上下文McContext){
super(mContext,R.layout.ilanitem,veriliste);
this.verilist=verilist;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
LayoutInflater充气器=(LayoutInflater)getContext().getSystemService(Context.LAYOUT\u充气器\u SERVICE);
v=充气机充气(R.layout.ilanitem,空);
}
YukilanModel yukilan=verilist.get(位置);
if(yukilan!=null){
TextView a_adresview=(TextView)v.findViewById(R.id.sehir1);
TextView hedef_adres_view=(TextView)v.findViewById(R.id.sehi
public class YukilanAdapter extends ArrayAdapter<YukilanModel> {
private static final String KEY_ADRES="Şehir: ";
private static final String KEY_TAKIPKODU="Takipkodu: ";
private static final String KEY_AGIRLIK="Ağırlık: ";
private static final String KEY_YUKCINS="Yukcins: ";
OkHttpClient client;
String gelennumara;
private List<YukilanModel> veriliste;
public YukilanAdapter(List<YukilanModel> veriliste, Context mContext) {
super(mContext, R.layout.ilanitem,veriliste);
this.veriliste = veriliste;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.ilanitem,null);
}
YukilanModel yukilan = veriliste.get(position);
if (yukilan != null) {
TextView a_adresview = (TextView) v.findViewById(R.id.sehir1);
TextView hedef_adres_view = (TextView) v.findViewById(R.id.sehir2);
TextView agirlikview = (TextView) v.findViewById(R.id.yuk);
TextView arac_view=(TextView) v.findViewById(R.id.arac);
View cizgi1=(View)v.findViewById(R.id.cizgi1);
View cizgi2=(View)v.findViewById(R.id.cizgi2);
a_adresview.setText(yukilan.getSehir());
hedef_adres_view.setText(yukilan.getHedefsehir());
agirlikview.setText(yukilan.getAgirlik());
arac_view.setText(yukilan.getArac());
if((arac_view.getText().toString()).equals("tır"))
{
cizgi1.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.mavi));
}else
{
cizgi1.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.kirmizi));
}
}
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String cins=getItem(position).getYukcins();
String sehir=getItem(position).getSehir();
String hedef=getItem(position).getHedefsehir();
String agirlik=getItem(position).getAgirlik();
Bundle bundle=new Bundle();
Intent newintent=new Intent(getContext(),Ilandetay.class);
bundle.putString("YUKCINS",cins);
bundle.putString("SEHIR",sehir);
bundle.putString("HEDEF",hedef);
bundle.putString("AGIRLIK",agirlik);
newintent.putExtras(bundle);
getContext().startActivity(newintent);
// Log.d("ON CLICK TEST",agirlik);
}
});
return v;
}
}