Существует ли представление для приписывания целых чисел в Android?

Вероятно, вы ищете класс SymbolFinder и, в частности, метод FindAllReferences .

Похоже, некоторые неприятности знакомятся с Рослин. У меня есть серия сообщений в блогах, чтобы помочь людям познакомиться с Рослином под названием Learn Roslyn Now .

Поскольку @SLaks упоминает, что вам понадобится доступ к семантической модели, которую я расскажу в . Часть 7: Введение в семантическую модель

Вот образец, который показывает вам, как использовать API. Если вы в состоянии, я бы использовал MSBuildWorkspace и загрузил проект с диска, а не создавал его в AdHocWorkspace, как это.

var mscorlib = PortableExecutableReference.CreateFromAssembly(typeof(object).Assembly);
var ws = new AdhocWorkspace();
//Create new solution
var solId = SolutionId.CreateNewId();
var solutionInfo = SolutionInfo.Create(solId, VersionStamp.Create());
//Create new project
var project = ws.AddProject("Sample", "C#");
project = project.AddMetadataReference(mscorlib);
//Add project to workspace
ws.TryApplyChanges(project.Solution);
string text = @"
class C
{
    void M()
    {
        M();
        M();
    }
}";
var sourceText = SourceText.From(text);
//Create new document
var doc = ws.AddDocument(project.Id, "NewDoc", sourceText);
//Get the semantic model
var model = doc.GetSemanticModelAsync().Result;
//Get the syntax node for the first invocation to M()
var methodInvocation = doc.GetSyntaxRootAsync().Result.DescendantNodes().OfType().First();
var methodSymbol = model.GetSymbolInfo(methodInvocation).Symbol;
//Finds all references to M()
var referencesToM = SymbolFinder.FindReferencesAsync(methodSymbol,  doc.Project.Solution).Result;

22
задан pupeno 7 February 2009 в 09:31
поделиться

2 ответа

NumberPicker виджет, вероятно, что Вы хотите. К сожалению, это расположено в com.android.internal.Widget.NumberPicker, до которого мы не можем добраться через нормальные средства.

существует два способа использовать его:

  1. Копия код из источника андроида
  2. отражение Использования для доступа к виджету

Вот xml для использования его в расположении:

<com.android.internal.widget.NumberPicker
    android:id="@+id/picker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Вот отражение для установки настроек NumberPicker (я не протестировал это):

Object o = findViewById(R.id.picker);
Class c = o.getClass();
try 
{
    Method m = c.getMethod("setRange", int.class, int.class);
    m.invoke(o, 0, 9);
} 
catch (Exception e) 
{
    Log.e("", e.getMessage());
}

, Так как это - внутренний виджет а не в SDK, будущая совместимость могла быть повреждена при использовании отражения. Это было бы самым безопасным к самокрутке от источника.

первоисточник для этой информации совместно используется в этом Google Group .

23
ответ дан Rahul Sharma 29 November 2019 в 05:07
поделиться

Внутренний виджет NumberPicker был извлечен из исходного кода Android и упакован для вашего использования, и вы можете найти его здесь. Работает отлично!

EDIT: Оригинальная ссылка не работает, вы можете найти копию виджета здесь

7
ответ дан 29 November 2019 в 05:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: