Пишу приложение в котором будут выводиться временные промежутки, поскольку их будет много решил сделать нумерацию через таблицы, в итоге при добавление 10, 100 и т.д. записии колонка увеличивается, а в месте с ней и отступ.
После попробовал через GridLayout
но там ситуация была та же.
После мой взор пал на ListView
, но я столкнулся с проблемой что я не понимаю как вывести сразу 2 элемента в 1 строку, а коды из других источников у меня не работают.
Внимание вопрос: Как можно вывести 2 ячейчи текстового поля в 1 строку ListView
или любой другой инструмент без отступа от чисел 10,100 и т.д.?
UDP Ошибка:
2019-08-18 05:34:33.640 26339-26339/com.github.myapplicatiokek E/AndroidRuntime: FATAL EXCEPTION: main Process: com.github.myapplicatiokek, PID: 26339 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.github.myapplicatiokek/com.github.myapplicatiokek.Activitys}: java.lang.ClassNotFoundException: Didn't find class "com.github.myapplicatiokek.Activitys" on path: DexPathList[[zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/base.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_dependencies_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_resources_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_0_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_1_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_2_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_3_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_4_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_5_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_6_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_7_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_8_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/lib/x86, /system/lib, /system/product/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3184) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7319) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934) 2019-08-18 05:34:33.665 26339-26339/com.github.myapplicatiokek E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.github.myapplicatiokek.Activitys" on path: DexPathList[[zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/base.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_dependencies_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_resources_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_0_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_1_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_2_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_3_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_4_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_5_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_6_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_7_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_8_apk.apk", zip file "/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/lib/x86, /system/lib, /system/product/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43) at android.app.Instrumentation.newActivity(Instrumentation.java:1243) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3172) ... 11 more Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.github.myapplicatiokek-0vZzwZCoBl_jWpnGF0gIMA==/split_lib_resources_apk.apk at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:365) at dalvik.system.DexFile.(DexFile.java:107) at dalvik.system.DexFile.(DexFile.java:80) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:444) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:403) at dalvik.system.DexPathList.(DexPathList.java:164) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:126) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:101) at dalvik.system.PathClassLoader.(PathClassLoader.java:74) at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:87) at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:116) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:114) at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:60) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:851) at android.app.LoadedApk.getClassLoader(LoadedApk.java:950) at android.app.LoadedApk.getResources(LoadedApk.java:1188) at android.app.ContextImpl.createAppContext(ContextImpl.java:2462) at android.app.ContextImpl.createAppContext(ContextImpl.java:2454) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6306) at android.app.ActivityThread.access$1300(ActivityThread.java:220) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1852) ... 6 more
Я вижу 3 варианта.
ListView
(как это сделать можно узнать в статье);Первый вариант - костыль. Но, для простейших случаев, может и сойдёт. Второй и третий варианты сложнее, но зато результат более качественный.
Для начала, я считаю, необходимо создать макет самого элемента списка:
item_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="#000000"
android:text=") " />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="#000000" />
</LinearLayout >
После переходим к активности:
Activitys.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.view.LayoutInflater;
import android.widget.TextView;
import android.view.View;
import android.view.LayoutInflater;
import android.widget.BaseAdapter;
import android.view.ViewGroup;
import android.content.Context;
public class Activitys extends Activity{
ListView list;
ListViewAdapter adapter;
String[] datas1 = new String[]{}; //то, что перед скобкой
String[] datas2 = new String[]{}; //то, что после скобки
private class ListViewAdapter extends BaseAdapter{
private LayoutInflater mLayoutInflater;
ListViewAdapter(Context context){
mLayoutInflater = LayoutInflater.from(context);
};
@Override
public int getCount(){
return datas2.length;
};
@Override
public Object getItem(int position){
return position;
};
@Override
public long getItemId(int position){
return position;
};
@Override
public View getView(int position, View convertView, ViewGroup parent){
if (convertView == null) convertView = mLayoutInflater.inflate(R.layout.item_list, null);
TextView text1 = (TextView) convertView.findViewById(R.id.text1);
text1.setText(datas1[position]);
TextView text2 = (TextView) convertView.findViewById(R.id.text2);
text2.setText(datas2[position]);
return convertView;
};
};
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
list = (ListView) findViewById(R.id.list);
adapter = new ListViewAdapter(Activitys.this);
list.setAdapter(adapter);
};
}
И, собственно, макет всего списка:
list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout >
P.S. пишите в комментарии об ошибках
UPDATE
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.YOUR_PACKAGE.YOUR_NAME">
//Исправьте YOUR_PACKAGE и YOUR_NAME на ваши
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="27" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activitys" />
//Здесь же указываются и другие используемые активности
</application>
</manifest>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как в классе C получить доступ к переменной str внутреннего класса PubInnerClass, которая лежит в классе А, если она protected?
Есть код через который можно выполнить вход прописав необходимый логин и пароль, если ты ввел логин неправильно то программа пишет "Error"
Есть React контрол с тегом input и дочерний контрол обрабатывающий введенное значение