Android ImageView在适配器中未得到相应更新
我正在使用一个基本适配器,我想根据每个操作相应地更改ImageView。我按照下面的代码来实现它Android ImageView在适配器中未得到相应更新,android,view,imageview,baseadapter,Android,View,Imageview,Baseadapter,我正在使用一个基本适配器,我想根据每个操作相应地更改ImageView。我按照下面的代码来实现它 @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder1 holder1; char color; String text = ""; String address = ""; LayoutInflate
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder1 holder1;
char color;
String text = "";
String address = "";
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.qq_searchlist_repeat_items,
parent, false);
holder1 = new ViewHolder1();
holder1.companyName_textView = (TextView) convertView
.findViewById(R.id.companyName_textView);
holder1.companyLogo_textView = (TextView) convertView
.findViewById(R.id.companyLogo_textView);
holder1.companyAddress_textView = (TextView) convertView
.findViewById(R.id.companyAddress_textView);
holder1.handShakeIcon_imageView = (ImageView) convertView
.findViewById(R.id.handShakeIcon_imageView);
holder1.favouritesIcon_imageView = (ImageView) convertView
.findViewById(R.id.favouritesIcon_imageView);
holder1.referIcon_imageView = (ImageView) convertView
.findViewById(R.id.referIcon_imageView);
holder1.sendEnquiry_imageView = (ImageView) convertView
.findViewById(R.id.sendEnquiry_imageView);
holder1.icons_searchResultsPage_relLayout = (RelativeLayout) convertView
.findViewById(R.id.icons_searchResultsPage_relLayout);
holder1.chckbx1 = (CheckBox) convertView.findViewById(R.id.chckbx1);
convertView.setTag(holder1);
if (SearchListActivity_Q2.broadcastMode) {
Log.i("icons_searchResultsPage_relLayout is visible",
"icons_searchResultsPage_relLayout is visible");
holder1.icons_searchResultsPage_relLayout
.setVisibility(View.GONE);
holder1.chckbx1.setVisibility(View.VISIBLE);
} else {
holder1.icons_searchResultsPage_relLayout
.setVisibility(View.VISIBLE);
holder1.chckbx1.setVisibility(View.GONE);
}
convertView.setTag(holder1);
} else {
holder1 = (ViewHolder1) convertView.getTag();
holder1.chckbx1.setOnCheckedChangeListener(null);
}
holder1.id = position;
holder1.chckbx1.setFocusable(false);
Log.i("position", "position: " + position);
search_companyName = searchresultList.get(position).getCpsName();
search_countryName = searchresultList.get(position).getCountryName();
holder1.chckbx1.setChecked(positionArray.get(position));
holder1.chckbx1
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
System.out.println(position + "--- :)");
int cpsId2 = searchresultList.get(position)
.getCpsId();
String cpsType2 = searchresultList.get(position)
.getCpsType();
String cpsName = searchresultList.get(position)
.getCpsName();
String handShakeStatus = searchresultList.get(
position).getHandShakeStatus();
int favouriteStatus = searchresultList
.get(position).getFavStatus();
positionArray.set(position, true);
broadCastDetailsLists.add(new BroadCastDetailsList(
cpsId2, cpsType2, position, cpsName,
handShakeStatus, favouriteStatus));
if (cpsType2.equalsIgnoreCase("o")) {
sendEnquiry.add(new Q2_SendEnquiryList(
searchresultList.get(position)
.getCpsId(), searchresultList
.get(position).getCpsName()));
}
} else
positionArray.set(position, false);
}
});
try {
String ssearch_companyName = URLDecoder.decode(search_companyName,
"UTF-8");
holder1.companyName_textView.setText(ssearch_companyName);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (searchresultList.get(position).getCpsName().contains(" ")) {
String[] splitText = searchresultList.get(position).getCpsName()
.split("\\s+");
char a = splitText[0].charAt(0);
char b = splitText[1].charAt(0);
text = String.valueOf(a) + String.valueOf(b);
color = b;
} else {
text = searchresultList.get(position).getCpsName().substring(0, 1);
color = searchresultList.get(position).getCpsName().charAt(1);
}
if (searchresultList.get(position).getCpsAddress().isEmpty()) {
address = searchresultList.get(position).getCountryName();
} else {
if (searchresultList.get(position).getCpsAddress().length() > 1) {
address = searchresultList.get(position).getCpsAddress() + ", "
+ searchresultList.get(position).getCountryName();
} else {
address = searchresultList.get(position).getCountryName();
}
}
holder1.companyAddress_textView.setText(address);
if (searchresultList.get(position).getHandShakeStatus()
.equalsIgnoreCase("d")) {
holder1.handShakeIcon_imageView
.setImageResource(R.drawable.qq_handshake);
holder1.handShakeIcon_imageView.setEnabled(true);
holder1.referIcon_imageView.setEnabled(false);
} else if (searchresultList.get(position).getHandShakeStatus()
.equalsIgnoreCase("s")) {
holder1.handShakeIcon_imageView
.setImageResource(R.drawable.qq_handshake_orange);
holder1.referIcon_imageView.setEnabled(true);
holder1.handShakeIcon_imageView.setEnabled(false);
} else if (searchresultList.get(position).getHandShakeStatus()
.equalsIgnoreCase("p")) {
holder1.handShakeIcon_imageView
.setImageResource(R.drawable.qq_handshake_blue_circle);
holder1.referIcon_imageView.setEnabled(true);
holder1.handShakeIcon_imageView.setEnabled(true);
} else if (searchresultList.get(position).getHandShakeStatus()
.equalsIgnoreCase("a")) {
holder1.handShakeIcon_imageView
.setImageResource(R.drawable.qq_handshake_blue_icon);
holder1.referIcon_imageView.setEnabled(true);
holder1.handShakeIcon_imageView.setEnabled(false);
}
if (searchresultList.get(position).getFavStatus() == 0) {
holder1.favouritesIcon_imageView
.setImageResource(R.drawable.qq_pin);
} else {
holder1.favouritesIcon_imageView
.setImageResource(R.drawable.qq_pin_yellow);
}
SearchListActivity_Q2.handShakeIcon_imageView
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < broadCastDetailsLists.size(); i++) {
Log.i("cpsId", "cpsId: "
+ broadCastDetailsLists.get(i).getCpsId());
Log.e("CpsType", "CpsType: "
+ broadCastDetailsLists.get(i).getCpsType());
Log.e("position", "position: "
+ broadCastDetailsLists.get(i)
.getPosition());
if (broadCastDetailsLists.get(i).getCpsType()
.equalsIgnoreCase("o")) {
companyCpsId_broadcast = companyCpsId_broadcast
+ "#"
+ broadCastDetailsLists.get(i)
.getCpsId();
}
}
Log.i("companyCpsId_broadcast",
"companyCpsId_broadcast: "
+ companyCpsId_broadcast.replaceFirst(
"#", ""));
// TODO Auto-generated method stub
handShakeCPSName = searchresultList.get(position)
.getCpsName();
handShakeStatus = searchresultList.get(position)
.getHandShakeStatus();
ConstantVariables.handShakeFromAdapter = true;
if (sharedpreferences.getInt("userId_sp", 0) != 0) {
if (sharedpreferences.getInt("profileActiveStatus",
0) > 0) {
if (sharedpreferences.getInt("organizationId",
0) != 0) {
SearchListActivity_Q2.afterBroadCast();
handShakeRequest(
context,
broadCastDetailsLists,
companyCpsId_broadcast
.replaceFirst("#", ""),
0,
ConstantVariables.handShakeFromAdapter,
searchResults_listView);
notifyDataSetChanged();
} else {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
context);
// Setting Dialog Title
// alertDialog.setTitle("Please Add Company");
// Setting Dialog Message
alertDialog
.setMessage("Please add your company details");
// Setting Positive "Yes" Button
alertDialog
.setPositiveButton(
"Add",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
Intent intent = new Intent(
context,
Profile_Activity.class);
context.startActivity(intent);
}
});
// Setting Negative "NO" Button
alertDialog
.setNegativeButton(
"Later",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
} else {
ConstantVariables
.requestEmailVerification(context);
}
} else {
ConstantVariables.requestLogin(context);
}
}
});
return convertView;
}
static class ViewHolder1 {
TextView companyName_textView, companyAddress_textView,
companyLogo_textView;
ImageView handShakeIcon_imageView, favouritesIcon_imageView,
referIcon_imageView, sendEnquiry_imageView;
CheckBox chckbx1;
int id;
static RelativeLayout icons_searchResultsPage_relLayout;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
mCheckStates.put((Integer) buttonView.getTag(), isChecked);
}
public static void handShakeRequest(final Context c,
final ArrayList<BroadCastDetailsList> broadCastDetailsLists,
final String companyCpsId, final int flag,
final boolean handShakeFromAdapter,
final ListView searchResults_listView) {
sharedpreferences = c.getSharedPreferences("MyPrefs",
Context.MODE_PRIVATE);
final EditText emailId_editText;
Button cancel_button, submit_button;
final TextView warning_textView, verifyEmail_textView, verifyEmailDesc_textView;
final CheckBox belowText_textView;
final Dialog dialog1 = new Dialog(c,
android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog1.setContentView(R.layout.handshake_dialog);
Window window = dialog1.getWindow();
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
WindowManager.LayoutParams layoutParams = dialog1.getWindow()
.getAttributes();
layoutParams.dimAmount = 0.7f;
dialog1.getWindow()
.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
emailId_editText = (EditText) dialog1
.findViewById(R.id.emailId_editText);
verifyEmail_textView = (TextView) dialog1
.findViewById(R.id.verifyEmail_textView);
verifyEmailDesc_textView = (TextView) dialog1
.findViewById(R.id.verifyEmailDesc_textView);
cancel_button = (Button) dialog1.findViewById(R.id.cancel_button);
submit_button = (Button) dialog1.findViewById(R.id.submit_button);
warning_textView = (TextView) dialog1
.findViewById(R.id.warning_textView);
belowText_textView = (CheckBox) dialog1
.findViewById(R.id.belowText_textView);
submit_button = (Button) dialog1.findViewById(R.id.submit_button);
cancel_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog1.dismiss();
}
});
submit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int reqCode = 0;
new HandShake_WS(c, broadCastDetailsLists, companyCpsId,
reqCode, handShakeFromAdapter, searchResults_listView)
.execute();
if (belowText_textView.isChecked()) {
// Toast.makeText(c, "is checked",
// Toast.LENGTH_SHORT).show();
Editor editor = sharedpreferences.edit();
editor.putInt("dontShowHandShakeDialog", 1);
editor.commit();
int check1 = sharedpreferences.getInt(
"dontShowHandShakeDialog", 0);
Log.i("check1", "check1: " + check1);
}
dialog1.dismiss();
}
});
if (sharedpreferences.getInt("dontShowHandShakeDialog", 0) == 1) {
handShakeDialogStatus = true;
} else if (sharedpreferences.getInt("dontShowHandShakeDialog", 0) == 0) {
handShakeDialogStatus = false;
}
if (!handShakeDialogStatus) {
Log.i("checkbox is not checked", "checkbox is not checked");
dialog1.show();
} else {
Log.i("checkbox is checked", "checkbox is checked");
if (flag == 0) {
int reqCode = flag;
new HandShake_WS(c, broadCastDetailsLists, companyCpsId,
reqCode, handShakeFromAdapter, searchResults_listView)
.execute();
} else {
int reqCode = 1;
new HandShake_WS(c, broadCastDetailsLists, companyCpsId,
reqCode, handShakeFromAdapter, searchResults_listView)
.execute();
}
}
}
private static class HandShake_WS extends AsyncTask<Void, Void, String> {
int flag;
boolean handShakeFromAdapter;
ListView searchResults_listView;
Context c;
String cpsId;
ArrayList<BroadCastDetailsList> broadCastDetailsLists;
public HandShake_WS(Context c,
ArrayList<BroadCastDetailsList> broadCastDetailsLists,
String companyCpsId, int flag, boolean handShakeFromAdapter,
ListView searchResults_listView) {
// TODO Auto-generated constructor stub
this.cpsId = companyCpsId;
this.c = c;
this.flag = flag;
this.handShakeFromAdapter = handShakeFromAdapter;
this.searchResults_listView = searchResults_listView;
this.broadCastDetailsLists = broadCastDetailsLists;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
ArrayList<NameValuePair> postData;
postData = new ArrayList<NameValuePair>();
JSONObject parentData = new JSONObject();
JSONObject childData = new JSONObject();
try {
childData.put("userId",
sharedpreferences.getInt("userId_sp", 0));
childData.put("userId",
sharedpreferences.getInt("organizationId", 0));
childData.put("requestHandshakeOrgIdList", cpsId);
childData.put("flag", flag);
// System.out.println(childData);
parentData.put("CPSProfileInfo", childData);
System.out.println(parentData);
} catch (JSONException e) {
e.printStackTrace();
}
// postData.add(new BasicNameValuePair("User",
// childData.toString()));
InputStream is = null;
String jsonResponse = "";
JSONObject jObj = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost request = new HttpPost(
Httppost_Links.HANDSHAKE_REQUEST);
request.setHeader("Content-Type", "application/json");
request.setEntity(new StringEntity(parentData.toString()));
HttpResponse httpResponse = httpClient.execute(request);
System.out.println(httpResponse);
// HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println(httpEntity);
is = httpEntity.getContent();
System.out.println(is);
System.out.println(is.toString());
try {
Log.e("@@@@@@@@@@", "@@@@@@@@@@@");
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
jsonResponse = sb.toString();
Log.e("JSON", "Check Json: " + jsonResponse);
} catch (Exception e) {
Log.e("Buffer Error",
"Error converting result " + e.toString());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonResponse;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
JSONObject object;
try {
Log.i("flag", "flag: " + flag);
if (flag == 0) {
Log.i("111flag", "111flag: " + flag);
final Dialog dialog1 = new Dialog(
c,
android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog1.setContentView(R.layout.handshake_request_sent);
Window window = dialog1.getWindow();
window.setLayout(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
WindowManager.LayoutParams layoutParams = dialog1
.getWindow().getAttributes();
layoutParams.dimAmount = 0.7f;
dialog1.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
TextView ok_textView = (TextView) dialog1
.findViewById(R.id.ok_textView);
TextView handShakeSent_textView = (TextView) dialog1
.findViewById(R.id.handShakeSent_textView);
ok_textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog1.dismiss();
}
});
dialog1.show();
}
object = new JSONObject(result);
/*
* int industryId =
* object.getJSONObject("CPSProfileInfo").getInt( "orgId");
*
* String handShakeStatus =
* object.getJSONObject("CPSProfileInfo")
* .getString("handShakeStatus");
*
* Log.i("industryId", "industryId: " + industryId);
*/
/*
* ViewHolder1.icons_searchResultsPage_relLayout
* .setVisibility(View.VISIBLE);
* ViewHolder1.chckbx1.setVisibility(View.GONE);
*/
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < broadCastDetailsLists.size(); i++) {
Log.i("broadCastDetailsLists.get(i).getPosition()",
"broadCastDetailsLists.get(i).getPosition(): "
+ broadCastDetailsLists.get(i).getPosition());
Log.i("searchResults_listView.getFirstVisiblePosition()",
"searchResults_listView.getFirstVisiblePosition(): "
+ searchResults_listView
.getFirstVisiblePosition());
View view = searchResults_listView
.getChildAt(broadCastDetailsLists.get(i).getPosition()
- searchResults_listView
.getFirstVisiblePosition());
ImageView handShakeIcon_imageView = (ImageView) view
.findViewById(R.id.handShakeIcon_imageView); //here's my where I'm getting my null pointer exception
handShakeIcon_imageView
.setImageResource(R.drawable.qq_handshake_orange);
handShakeIcon_imageView.setEnabled(false);
}
}
}
@覆盖
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
最终视图持有者1持有者1;
炭色;
字符串文本=”;
字符串地址=”;
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
if(convertView==null){
convertView=充气机。充气(R.layout.qq\u搜索列表\u重复项目,
父母,假);
holder1=新视图holder1();
holder1.companyName_textView=(textView)convertView
.findviewbyd(R.id.companyName_textView);
holder1.companyLogo\u textView=(textView)convertView
.findViewById(R.id.companyLogo\u textView);
holder1.companyAddress_textView=(textView)convertView
.findViewById(R.id.companyAddress_textView);
holder1.handShakeIcon_imageView=(imageView)convertView
.findviewbyd(R.id.handShakeIcon\u imageView);
holder1.FavoriteSicon_imageView=(imageView)convertView
.findViewById(R.id.FavoriteSicon_imageView);
holder1.referIcon\u imageView=(imageView)convertView
.findViewById(R.id.referIcon\U imageView);
holder1.SendInquiry\u imageView=(imageView)convertView
.findviewbyd(R.id.send\u imageView);
holder1.icons\u searchResultsPage\u relLayout=(RelativeLayout)convertView
.findViewById(R.id.icons\u searchresults页面\u relLayout);
holder1.chckbx1=(复选框)convertView.findViewById(R.id.chckbx1);
convertView.setTag(保持器1);
if(SearchListActivity_Q2.广播模式){
Log.i(“图标\u搜索结果页面\u布局可见”,
“图标\搜索结果页面\布局可见”);
holder1.icons\u searchresults页面\u rellayou布局
.setVisibility(View.GONE);
holder1.chckbx1.setVisibility(View.VISIBLE);
}否则{
holder1.icons\u searchresults页面\u rellayou布局
.setVisibility(View.VISIBLE);
holder1.chckbx1.setVisibility(View.GONE);
}
convertView.setTag(保持器1);
}否则{
holder1=(ViewHolder1)convertView.getTag();
holder1.chckbx1.setOnCheckedChangeListener(null);
}
holder1.id=位置;
holder1.chckbx1.setFocusable(假);
日志i(“位置”,“位置:”+位置);
search_companyName=searchresultList.get(position.getCpsName();
search_countryName=searchresultList.get(position.getCountryName();
holder1.chckbx1.setChecked(positionArray.get(position));
保持架1.chckbx1
.setOnCheckedChangeListener(新的OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(复合按钮视图,
布尔值(已检查){
如果(已检查){
System.out.println(位置+“-:”);
int cpsId2=searchresultList.get(位置)
.getCpsId();
字符串cpsType2=searchresultList.get(位置)
.getCpsType();
字符串cpsName=searchresultList.get(位置)
.getCpsName();
String handShakeStatus=searchresultList.get(
位置)。getHandShakeStatus();
int favoriteStatus=searchresultList
.get(position.getFavStatus();
positionArray.set(位置,true);
添加(新的BroadCastDetailsList(
cpsId2,cpsType2,位置,cpsName,
握手状态(状态);
if(cpsType2.等效信号情况(“o”)){
SendInquiry.add(新的Q2\U SendInquiryList(
searchresultList.get(位置)
.getCpsId(),searchresultList
.get(position.getCpsName());
}
}否则
positionArray.set(位置,false);
}
});
试一试{
字符串ssearch\u companyName=URLDecover.decode(搜索\u companyName,
“UTF-8”);
holder1.companyName_textView.setText(ssearch_companyName);
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
if(searchresultList.get(position).getCpsName()包含(“”){
String[]splitText=searchresultList.get(position).getCpsName()
.split(\\s+);
字符a=拆分文本[0]。字符(0);
字符b=拆分文本[1]。字符(0);
text=String.valueOf(a)+String.valueOf(b);
颜色=b;
}否则{
text=searchresultList.get(位置).getCpsName().substring(0,1);
color=searchresultList.get(位置).getCpsName().charAt(1);
}
if(searchresultList.get(position.getCpsAddress().isEmpty()){
address=searchresultList.get(位置).getCountryName();
}否则{
if(searchresultList.get(position.getCpsAddress().length()>1){
address=searchresultList.get(位置).getCpsAddress()+“,”
+searchresultList.get(位置).getCountryName();
}否则{
address=searchresultList.get(位置).getCountryName();
}
}
holder1.companyAddress_textView.setText(地址);
if(searchresultList.get(position).getHandShakeStatus()
.equalsIgnoreCase(“d”)){
holder1.handShakeIcon_图像视图
.setImage