ListView가있는 Android 앱이 있습니다. 나는 두 TextViews과 버튼 다음에 체크 박스를 가지고 내 자신의 항목 레이아웃을 만든 : 사용자가 행을 탭하면Android ListView 및 이벤트 버블 링
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dip"></CheckBox>
<RelativeLayout android:layout_height="match_parent" android:id="@+id/relativeLayout1" android:layout_width="match_parent">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button1" android:layout_alignParentRight="true" android:text="Button"></Button>
<TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="TextView" android:layout_toLeftOf="@+id/button1" android:layout_alignTop="@+id/button1" android:layout_width="match_parent"></TextView>
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="TextView" android:layout_below="@+id/textView1" android:layout_alignLeft="@+id/textView1" android:layout_alignRight="@+id/textView1"></TextView>
</RelativeLayout>
</LinearLayout>
, 나는 그들이 체크 박스를 누른 경우에 따라 다른 동작을 원하지는 버튼 또는 행 자체 (즉, CheckBox 또는 버튼 이외의 항목). 여기에 지금까지 (사용 setOnItemClickListener)를 구현하려고했습니다 무엇 : 나는 응용 프로그램을 실행하고 TextViews 중 하나를 클릭하면
package com.camelconsultants.shoplist;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class HelloAndroid extends ListActivity implements OnItemClickListener
{
ArrayList<HashMap<String, String>> Items = new ArrayList<HashMap<String, String>>();
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
GetData();
setListAdapter
(
new SimpleAdapter
(
this.getBaseContext(),
Items,
R.layout.multiitem,
new String[]{ "Code", "Description" },
new int[]{ R.id.textView1, R.id.textView2 }
)
);
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(this);
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText
(
getApplicationContext(),
parent.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT
).show();
}
void GetData()
{
HashMap<String, String> Item;
try
{
JSONObject JsonObject = new JSONObject(this.getResources().getString(R.string.Json));
JSONArray JsonArray = JsonObject.getJSONArray("Items");
for (int i = 0; i < JsonArray.length(); i++)
{
Item = new HashMap<String, String>();
Item.put("Code", JsonArray.getJSONObject(i).getString("Code"));
Item.put("Description", JsonArray.getJSONObject(i).getString("Description"));
Items.add(Item);
}
}
catch(JSONException Bummer)
{
Bummer.printStackTrace();
}
}
}
은, 아무 일도 발생하지 않습니다!
어떻게 접근하면 좋을까요?
목록 위젯에 대한 레이아웃 xml 파일을 클릭하면 절대로 효과가 없습니다! – jsDebugger