I retrieve information of student from data base (student number and id and name) with delete buttons so if user click in delete it will display toast message with student id for each button in list.
But I run the code and click in delete button nothing happened, no error in log cat no error in console. What am I missing and why this happening? Also I try to display this message in log cat and nothing happened.
this is my code:
public class ManageSection extends ListActivity {
//ProgresogressDialog pDialog;
private ProgressDialog pDialog;
// Creating JSON Parser object
// Creating JSON Parser object
JSONParser jParser = new JSONParser(); //class
boolean x =true;
Button delete;
ArrayList<HashMap<String, String>> studentList;
//url to get all products list
private static String url_all_student = "http://10.0.2.2/SmsPhp/view_student_info.php";
String cl;
// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_student = "student";
private static final String TAG_StudentID = "StudentID";
private static final String TAG_StudentNo = "StudentNo";
private static final String TAG_FullName = "FullName";
private static final String TAG_Avatar="Avatar";
HashMap<String, String> selected_student;
// course JSONArray
JSONArray student = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.manage_section);
studentList = new ArrayList<HashMap<String, String>>();
ListView list1 = getListView();
list1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
selected_student =studentList.get(pos); //member of your activity.
delete =(Button)findViewById(R.id.DeleteStudent);
cl=selected_student.get(TAG_StudentID);
Log.d("id: ",cl);
delete.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
Log.d("id: ",cl);
Toast.makeText(getBaseContext(),cl,Toast.LENGTH_LONG).show();
}
});
}
});
new LoadAllstudent().execute();
}
/**
* Background Async Task to Load all student by making HTTP Request
* */
class LoadAllstudent extends AsyncTask<String, String, String>
{
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ManageSection.this);
pDialog.setMessage("Loading student. Please wait...");
pDialog.setIndeterminate(false);
}
/**
* getting All student from u r l
* */
@Override
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_student, "GET", params);
// Check your log cat for JSON response
Log.d("All student : ", json.toString());
try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1)
{
// student found
// Getting Array of course
student = json.getJSONArray(TAG_student);
// looping through All courses
for (int i = 0; i < student.length(); i++)//course JSONArray
{
JSONObject c = student.getJSONObject(i); // read first
// Storing each json item in variable
String StudentID = c.getString(TAG_StudentID);
String StudentNo = c.getString(TAG_StudentNo);
String FullName = c.getString(TAG_FullName);
// String Avatar = c.getString(TAG_Avatar);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_StudentID, StudentID);
map.put(TAG_StudentNo, StudentNo);
map.put(TAG_FullName, FullName);
// adding HashList to ArrayList
studentList.add(map);
}
} else {
x=false;
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
pDialog.dismiss();
if (x==false)
Toast.makeText(getBaseContext(),"no student" ,Toast.LENGTH_LONG).show();
ListAdapter adapter = new SimpleAdapter(
ManageSection.this, studentList,
R.layout.list_student, new String[] { TAG_StudentID,
TAG_StudentNo,TAG_FullName},
new int[] { R.id.StudentID, R.id.StudentNo,R.id.FullName});
setListAdapter(adapter);
// Updating parsed JSON data into ListView
}
}
}
and the xml for manage
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg_all_1" >
<!-- HEADER -->
<include
android:id="@+id/top_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="90dp"
layout="@layout/layout_header" />
<!-- FOOTER -->
<!-- MAIN PART -->
<RelativeLayout
android:id="@+id/sub_content_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/top_header"
android:orientation="vertical" >
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:gravity="left"
android:layout_marginTop="10dp" >
</ListView>
</ScrollView>
</RelativeLayout>
<LinearLayout
android:id="@+id/bottom_menu"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="38dp"
android:orientation="vertical" >
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/layout_footer" />
</LinearLayout>
</RelativeLayout>
list student xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- Student id (CourseID) - will be HIDDEN - used to pass to other activity -->
<TextView
android:id="@+id/StudentID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"
/>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<!-- Name Label -->
<TextView
android:id="@+id/FullName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="6dip"
android:paddingLeft="6dip"
android:textSize="8dip"
android:textStyle="bold" />
<TextView
android:id="@+id/StudentNo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="6dip"
android:paddingTop="6dip"
android:textSize="8dip"
android:textStyle="bold" />
<Button
android:id="@+id/DeleteStudent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="10dip"
android:minWidth="50dip"
android:text="@string/deleteStudent"
android:textSize="8dp"
android:width="30dp"
>
</Button>
<Button
android:id="@+id/Alert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="10dip"
android:minWidth="50dip"
android:text="@string/Alert"
android:textSize="8dp"
android:width="30dp" >
</Button>
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:text="@string/attendance"
android:textSize="8dp"
/>
</RadioGroup>
</LinearLayout>
Please Try replacing the following line in your code:
delete =(Button)findViewById(R.id.DeleteStudent);
with
delete =(Button)view.findViewById(R.id.DeleteStudent);
@sara you cant give the implementation of onclick event in onItemClick event you should put this code:
delete.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
Log.d("id: ",cl);
Toast.makeText(getBaseContext(),cl,Toast.LENGTH_LONG).show();
}
});
}
in your adapter's getView method then it will work.coz you are doing here is that you are applying listener to delete button on item click so it wont work coz it always apply the listener and ur listener's method never get called!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.