OnClickListener에서 다른 활동을 호출하려고하는데 NullPointerException이 발생했습니다. https://stackoverflow.com/a/7325248/1291619에 제공된 제안을 사용하여 데이터를 다른 활동으로 전달했습니다.NullPointerException - 비 활동 클래스에서 활동으로 데이터를 보낼 때 (의도를 통해)
이 클래스는 목록에서 수신 대기하고 항목을 클릭 할 때 선택한 URI로 VCardActivity.java를 시작하기위한 클래스입니다. 그것은 의도와 함께 URI를 보냅니다
public class StaffListListener implements OnItemClickListener {
ArrayList<String> items;
Activity activity;
public StaffListListener(ArrayList<String> items, Activity activity) {
this.items = items;
this.activity = activity;
}
/**
* Send user to view with contact details
*/
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
//items.get(pos) returns the UPI needed. Append to http://www.cs.auckland.ac.nz/our_staff/vcard.php?upi=
Uri.Builder b = Uri.parse("http://www.cs.auckland.ac.nz/our_staff/vcard.php").buildUpon();
b.appendQueryParameter("upi", items.get(pos));
Uri uri = b.build();
Log.d("URL of staff", uri.toString());
Intent i = new Intent(activity.getApplicationContext(), VCardActivity.class);
i.putExtra("URI",uri);
activity.startActivity(i);
}
}
이 클래스는 URI와 함께 의도를 수신하고 데이터를 분석하고 표시하기위한 것입니다.
이public class VCardActivity extends ListActivity {
private VCardActivity local;
private String uri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vcard);
local = this;
Bundle extras = getIntent().getExtras();
if (extras != null) {
uri = extras.getString("URI");
}
try {
URL url = new URL(uri.toString());
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream stream = urlConnection.getInputStream();
StringBuffer fileContent = new StringBuffer("");
int ch;
while((ch = stream.read()) != -1){
fileContent.append((char)ch);
}
String data = new String(fileContent);
Log.i("TAG", "data: " + data);
}
catch (IOException e) {
e.printStackTrace();
}
}
}
내 예외 : 내가 잘못거야 어디 사람이 말해 줄 수 있다면
06-01 10:06:13.293: E/AndroidRuntime(903): FATAL EXCEPTION: main
06-01 10:06:13.293: E/AndroidRuntime(903): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lim.assignment/com.lim.json.VCardActivity}: java.lang.NullPointerException
06-01 10:06:13.293: E/AndroidRuntime(903): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
될 것입니다 단순히 자리 표시 자 로그인을 사용하여 서식 아직 분석 데이터를 정리하지 않은 매우 감사.
등 얻을 데이터는 URI에 널 값을 가질 수있다. –
나는 직접 StaffListListener에 uri를 테스트했다. 문제는 VCardActivity를 호출하거나 어쩌면 URI가 의도를 통과하는지 여부입니다. – misaochan
의도로 uri.toString()을 전달 –