Вот мой код для заставки, и он работает очень хорошо:
public class SplashScreenActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen_activiyt);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashScreenActivity.this, OnBoardingActivity.class);
startActivity(intent);
finish();
}
}, 2000);
}
}
Где SplashScreenActivity - стандартная активность, объявленная в AndroidManifest.xml
Вам нужно будет написать шаблоны данных для ваших различных типов данных поля, чтобы WPF выбрал способ отображения ваших данных в зависимости от их типа. что-то такого формата:
ПРИМЕЧАНИЕ. Это не WPF, а просто псевдокод.
<DataTemplate DataType="{x:Type DateTime}">
<DatePicker Value="{Binding}"/>
</DataTemplate>
<DataTemplate DataType="{x:Type String}">
<TextBox Text="{Binding}"/>
</DataTemplate>
Это не обязательно должен быть примитивный тип. Это может быть Email
, DateApproved
или даже Url
тип класса. например,
class Customer
{
public Email Email{get;set;}
public DateTime DateApproved{get;set;}
public URI Url{get;set;}
}
public class Email
{
public string Type{get;set;}
public string Value{get;set;}
}
.. и т. д.
Обновление
Посмотрите этот пример динамического пользовательского интерфейса WPF на MSDN: Динамический ввод данных с WPF и LINQ
Вам необходимо настроить DataTemplate для каждого типа поля, например, Date, String, Bool. Это определит способ отображения каждого поля.
Затем можно использовать столбцы для запроса к базе данных, чтобы сгенерировать список объектов и поместить их в ItemsControl.
ObservableCollection<ColumnDef> columns = new ObservableCollection<ColumnDef>();
// Add columns from DB
columns.Add(new StringColumnDef{Object=..., Field=..., Label=..., Value=...});
columns.Add(new DateColumnDef{Object=..., Field=..., Label=..., Value=...});
items.ItemsSource = columns; // items is an ItemsControl
Каждый элемент в элементе управления будет отображаться на основе DataTemplate. для этого типа.
Внутри ColumnDef вы можете использовать Reflection для обновления объекта данных с изменениями из элементов управления пользовательского интерфейса. Затем вы можете применить изменения к данным при сохранении пользователем.