Я новичок в android и следую документации android Я пытался связать свой android_version_layout.xml
с моей основной деятельностью, чтобы получить доступ к вещам внутри android_version_layout.xml
.
* 1006. * Для этого вот мой основной файл активности:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity">
<include layout="@layout/android_version_layout"/>
<ListView
android:id="@+id/customListView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/listSimple"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
, а вот мой android_version_layout.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="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
android:src="@drawable/list_icon" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/titleT"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="I'm a title"
/>
<TextView
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
Теперь у меня есть Java файл, где я пытаюсь изменить значение textview с идентификатором titleT
:
TextView title = (TextView) view.findViewById(R.id.titleT);
, но по какой-то причине у меня нулевой указатель. Когда я использую отладчик, я вижу, что он находит R.id.titleT
, потому что есть число типа 2331165325
, но заголовок остается пустым.
Кто-то может мне помочь?
Вот мой AndroidAdapter.java
public class AndroidAdapter extends ArrayAdapter<AndroidVersion> {
private ArrayList<AndroidVersion> androidVersionList;
private Context context;
private int viewRes;
private Resources res;
public AndroidAdapter(Context context, int viewResourceId, ArrayList<AndroidVersion> versions){
super(context,viewResourceId,versions);
this.androidVersionList = versions;
this.context = context;
this.viewRes = viewResourceId;
this.res = context.getResources();
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = convertView;
if(view == null){
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(viewRes, parent, false);
}
final AndroidVersion androidVersion = androidVersionList.get(position);
if(androidVersion != null){
final TextView title = (TextView) view.findViewById(R.id.titleT);
final TextView description = (TextView) view.findViewById(R.id.description);
final String versionName = "TEST"; //String.format(res.getString(R.string.list_title), androidVersion.getVersionName());
title.setText(versionName);
final String versionNumber = "versionTest"; //String.format(res.getString(R.string.list_desc), androidVersion.getVersionNumber());
description.setText(versionNumber);
}
return view;
}
}
Вот основной_актив. java
public class MainActivity extends AppCompatActivity {
ListView listsimple;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listsimple = findViewById(R.id.listSimple);
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("item1");
arrayList.add("item2");
arrayList.add("item3");
arrayList.add("Jérôme & Dylan I-2a");
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,arrayList);
listsimple.setAdapter(arrayAdapter);
// custom list -----------------------------------------------------------
ArrayList<AndroidVersion> androidList = new ArrayList<AndroidVersion>();
initList(androidList);
AndroidAdapter adapter = new AndroidAdapter(this, android.R.layout.simple_list_item_1, androidList);
final ListView list = (ListView) findViewById(R.id.customListView);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AndroidVersion selectedItem = (AndroidVersion) parent.getItemAtPosition(position);
Log.v("CustomAdapterExemple","Selected element: " + selectedItem.getVersionName());
}
});
}