Zaman ayırdığınız için teşekkür ederiz.Bir BaseAdapter kullanarak yer tutucu verileri ile bir ListView doldurmaya çalışıyorum ve bir parçaya koymak ama bazı nedenlerle uygulama çöküyor bazı nedenlerle
MainActivity
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FragmentB fragB = new FragmentB();
FragmentManager fragManager = getFragmentManager();
FragmentTransaction fragTransaction = fragManager.beginTransaction();
fragTransaction.add(R.id.cmll,fragB,"fragB");
fragTransaction.commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Benim Fragment
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class FragmentB extends Fragment {
private Context myContext;
@Override
public void onAttach(Context context) {
myContext=context;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_b_layout, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListView listView = (ListView) getActivity().findViewById(R.id.listView);
MyBaseAdapter adapter = new MyBaseAdapter(myContext);
listView.setAdapter(adapter);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
}
Benim BaseAdapter Sınıf
i henüz Görünüm Tutucu tasarım deseni kullanmaz biliyorum ama çökmesini olmadan hala göstermesi gerekir düşünce .
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class MyBaseAdapter extends BaseAdapter {
private Context myContext;
private ArrayList<ListViewInfo> list;
public MyBaseAdapter(Context context) {
myContext = context;
list = new ArrayList<>();
String[] test_10char = {"AaaAaaAaaA","BbbBbbBbbB","CccCccCccC"};
String[] test_3char = {"Aaa","Bbb","Ccc"};
int[] ints = {R.drawable.test_sunny,R.drawable.test_sunny,R.drawable.test_sunny};
for (int i = 0; i < 3; i++) {
list.add(new ListViewInfo(test_10char[i], test_3char[i], ints[i]));
}
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View singleRowView = inflater.inflate(R.layout.list_item_layout,parent,false);
TextView date = (TextView) singleRowView.findViewById(R.id.textView1);
TextView temp = (TextView) singleRowView.findViewById(R.id.textView2);
ImageView icon = (ImageView) singleRowView.findViewById(R.id.imageView1);
ListViewInfo tempLVI = list.get(position);
date.setText(tempLVI.getDate());
temp.setText(tempLVI.getTemp());
icon.setImageResource(tempLVI.getImageID());
return singleRowView;
}
}
Hata
03-22 21:42:08.421 4130-4130/com.eli.myweatherapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.eli.myweatherapp, PID: 4130
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
at com.eli.myweatherapp.MyBaseAdapter.getView(MyBaseAdapter.java:52)
at android.widget.AbsListView.obtainView(AbsListView.java:2387)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1270)
at android.widget.ListView.onMeasure(ListView.java:1182)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1438)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:724)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1438)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:724)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
at android.view.View.measure(View.java:17485)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:464)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:664)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:731)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1438)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:724)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1438)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:724)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
at android.view.View.measure(View.java:17485)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5464)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2636)
at android.view.View.measure(View.java:17485)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2031)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1193)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1400)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1078)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5875)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5290)
at java.lang.reflect.Method.invoke(Native Method)
at java.lan
Log
Bir ListViewInfo de sınıf ama onun sadece üç değişken vardır ve yöntemleri olsun.Yardımlarınız için şimdiden teşekkür ederiz. Problemin ne olduğu hakkında hiçbir fikrim yok. Context context = parent.getContext();
LayoutInflater inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
bunun senin için yararlı olduğunu umuyoruz
LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
için:
getView
arasında
Günlükleri dahil edebilir misiniz? –
Genel olarak android ve programlamaya yeni geliyorum. Bu sizin aradığınız şey: – BusterDublup
03-22 21: 42: 08.421 4130-4130/com.askowitz.eli.myweatherapp E/AndroidRuntime: FATAL ÖZGÜRLÜK: mainProcess: com.askowitz.eli.myweatherapp, PID: 4130 java. lang.NullPointerException: com.askowitz.eli.myweatherapp.MyBaseAdapter.getView (MyBaseAdapter) 'da bir null object reference üzerinde sanal yöntem' java.lang.Object android.content.Context.getSystemService (java.lang.String) 'çağrılmayı deneyin. .java: 52) – BusterDublup